export type ClientOptions = { baseUrl: 'https://{region}.sentry.io' | 'https://{region}.sentry.io' | (string & {}); }; /** * Response type for the POST endpoint (default kickoff and step paths). */ export type AutofixPostResponse = { run_id: number; sentry_run_id: string | null; }; /** * Response type for the GET endpoint */ export type AutofixStateResponse = { /** * The ``formatted`` field the mixin adds to a response when ``?llmFormat`` is requested. */ formatted?: { format: 'markdown' | 'xml'; content: string; }; autofix: { [key: string]: unknown; } | null; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type BaseDataConditionGroupValidator = { id?: number; /** * * `any` * * `any-short` * * `all` * * `none` */ logic_type: 'any' | 'any-short' | 'all' | 'none'; conditions?: Array; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type BaseDetectorTypeValidator = { /** * Name of the monitor. */ name: string; /** * The type of monitor - `metric_issue`. */ type: string; /** * The IDs of the alerts to connect this monitor to. Use the 'Fetch Alerts' endpoint to find the IDs. */ workflow_ids?: Array; /** * * The data sources for the monitor to use based on what you want to measure. * * **Number of Errors Metric Monitor** * - `eventTypes`: Any of `error` or `default`. * ```json * [ * { * "aggregate": "count()", * "dataset" : "events", * "environment": "prod", * "eventTypes": ["default", "error"], * "query": "is:unresolved", * "queryType": 0, * "timeWindow": 3600, * }, * ], * ``` * * **Users Experiencing Errors Metric Monitor** * - `eventTypes`: Any of `error` or `default`. * ```json * [ * { * "aggregate": "count_unique(tags[sentry:user])", * "dataset" : "events", * "environment": "prod", * "eventTypes": ["default", "error"], * "query": "is:unresolved", * "queryType": 0, * "timeWindow": 3600, * }, * ], * ``` * * * **Throughput Metric Monitor** * ```json * [ * { * "aggregate":"count(span.duration)", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Duration Metric Monitor** * ```json * [ * { * "aggregate":"p95(span.duration)", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Failure Rate Metric Monitor** * ```json * [ * { * "aggregate":"failure_rate()", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Largest Contentful Paint Metric Monitor** * - `dataset`: If a custom percentile is used, dataset is `transactions`. Otherwise, dataset is `events_analytics_platform`. * - `aggregate`: Valid values are `avg(measurements.lcp)`, `p50(measurements.lcp)`, `p75(measurements.lcp)`, `p95(measurements.lcp)`, `p99(measurements.lcp)`, `p100(measurements.lcp)`, and `percentile(measurements.lcp,x)`, where `x` is your custom percentile. * * ```json * [ * { * "aggregate":"p95(measurements.lcp)", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Custom Metric Monitor** * - `dataset`: If a custom percentile is used, dataset is `transactions`. Otherwise, dataset is `events_analytics_platform`. * - `aggregate`: Valid values are: * `avg(x)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p50(x)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p75(x)`, where x is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p95(x)`, where x is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p99(x)`, where x is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p100(x)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `percentile(x,y)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`, and `y` is the custom percentile. * `failure_rate()` * `apdex(x)`, where `x` is the value of the Apdex score. * `count()` * * ```json * [ * { * "aggregate": "p75(measurements.ttfb)" * "dataset": "events_analytics_platform", * "queryType": 1, * }, * ], * */ data_sources?: Array; /** * * The issue detection type configuration. * * * - `detectionType` * - `static`: Threshold based monitor * - `percent`: Change based monitor * - `dynamic`: Dynamic monitor * - `comparisonDelta`: If selecting a **change** detection type, the comparison delta is the time period at which to compare against in minutes. * For example, a value of 3600 compares the metric tracked against data 1 hour ago. * - `300`: 5 minutes * - `900`: 15 minutes * - `3600`: 1 hour * - `86400`: 1 day * - `604800`: 1 week * - `2592000`: 1 month * * **Threshold** * ```json * { * "detectionType": "static", * } * ``` * **Change** * ```json * { * "detectionType": "percent", * "comparisonDelta": 3600, * } * ``` * **Dynamic** * ```json * { * "detectionType": "dynamic", * } * ``` * */ config?: { [key: string]: unknown; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ condition_group?: { id?: number; /** * * `any` * * `any-short` * * `all` * * `none` */ logic_type: 'any' | 'any-short' | 'all' | 'none'; conditions?: Array; }; /** * * The ID user or team who owns the monitor or alert prefaced by the string 'user' or 'team'. * * **User** * ```json * "user:123456" * ``` * * **Team** * ```json * "team:456789" * ``` * */ owner?: string | null; /** * A description of the monitor. Will be used in the resulting issue. */ description?: string | null; /** * Set to False if you want to disable the monitor. */ enabled?: boolean; }; export type BaseTeam = { id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; }; export type BulkEnvironment = { /** * List of environment names to update. Maximum 1000. */ environmentNames: Array; /** * Specify `true` to hide or `false` to show the specified environments. */ isHidden: boolean; }; export type BulkUpdateAlerts = { /** * Whether to enable or disable the alerts */ enabled: boolean; }; export type BulkUpdateMonitors = { /** * Whether to enable or disable the monitors */ enabled: boolean; }; export type BulkUpdateProjectEnvironments = Array<{ id: string; name: string; isHidden: boolean; }>; export type CheckInList = Array<{ groups?: Array; id: string; environment: string; status: string; duration: number | null; dateCreated: string; dateAdded: string; dateUpdated: string; dateInProgress: string | null; dateClock: string; expectedTime: string; monitorConfig: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; }>; export type Commit = { id: string; repository?: string | null; message?: string | null; author_name?: string | null; author_email?: string | null; timestamp?: string | null; patch_set?: Array<{ path: string; type: string; }> | null; }; export type CommitPatchSet = { path: string; type: string; }; export type CommitSerializerResponse = Array<{ id: string; message: string | null; dateCreated: string; pullRequest: { id: string; title: string | null; message: string | null; dateCreated: string; mergedAt: string | null; status: 'merged' | 'open' | 'closed' | 'draft' | 'unknown' | null; repository: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }; externalUrl: string; } | null; suspectCommitType: string; repository?: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; } | { [key: string]: unknown; }; }>; export type ConfigValidator = { /** * Currently supports "crontab" or "interval" * * * `crontab` * * `interval` */ schedule_type?: 'crontab' | 'interval'; /** * Varies depending on the schedule_type. Is either a crontab string, or a 2 element tuple for intervals (e.g. [1, 'day']) */ schedule: unknown; /** * How long (in minutes) after the expected checkin time will we wait until we consider the checkin to have been missed. */ checkin_margin?: number | null; /** * How long (in minutes) is the checkin allowed to run for in CheckInStatus.IN_PROGRESS before it is considered failed. */ max_runtime?: number | null; /** * tz database style timezone string * * * `Africa/Abidjan` * * `Africa/Accra` * * `Africa/Addis_Ababa` * * `Africa/Algiers` * * `Africa/Asmara` * * `Africa/Asmera` * * `Africa/Bamako` * * `Africa/Bangui` * * `Africa/Banjul` * * `Africa/Bissau` * * `Africa/Blantyre` * * `Africa/Brazzaville` * * `Africa/Bujumbura` * * `Africa/Cairo` * * `Africa/Casablanca` * * `Africa/Ceuta` * * `Africa/Conakry` * * `Africa/Dakar` * * `Africa/Dar_es_Salaam` * * `Africa/Djibouti` * * `Africa/Douala` * * `Africa/El_Aaiun` * * `Africa/Freetown` * * `Africa/Gaborone` * * `Africa/Harare` * * `Africa/Johannesburg` * * `Africa/Juba` * * `Africa/Kampala` * * `Africa/Khartoum` * * `Africa/Kigali` * * `Africa/Kinshasa` * * `Africa/Lagos` * * `Africa/Libreville` * * `Africa/Lome` * * `Africa/Luanda` * * `Africa/Lubumbashi` * * `Africa/Lusaka` * * `Africa/Malabo` * * `Africa/Maputo` * * `Africa/Maseru` * * `Africa/Mbabane` * * `Africa/Mogadishu` * * `Africa/Monrovia` * * `Africa/Nairobi` * * `Africa/Ndjamena` * * `Africa/Niamey` * * `Africa/Nouakchott` * * `Africa/Ouagadougou` * * `Africa/Porto-Novo` * * `Africa/Sao_Tome` * * `Africa/Timbuktu` * * `Africa/Tripoli` * * `Africa/Tunis` * * `Africa/Windhoek` * * `America/Adak` * * `America/Anchorage` * * `America/Anguilla` * * `America/Antigua` * * `America/Araguaina` * * `America/Argentina/Buenos_Aires` * * `America/Argentina/Catamarca` * * `America/Argentina/ComodRivadavia` * * `America/Argentina/Cordoba` * * `America/Argentina/Jujuy` * * `America/Argentina/La_Rioja` * * `America/Argentina/Mendoza` * * `America/Argentina/Rio_Gallegos` * * `America/Argentina/Salta` * * `America/Argentina/San_Juan` * * `America/Argentina/San_Luis` * * `America/Argentina/Tucuman` * * `America/Argentina/Ushuaia` * * `America/Aruba` * * `America/Asuncion` * * `America/Atikokan` * * `America/Atka` * * `America/Bahia` * * `America/Bahia_Banderas` * * `America/Barbados` * * `America/Belem` * * `America/Belize` * * `America/Blanc-Sablon` * * `America/Boa_Vista` * * `America/Bogota` * * `America/Boise` * * `America/Buenos_Aires` * * `America/Cambridge_Bay` * * `America/Campo_Grande` * * `America/Cancun` * * `America/Caracas` * * `America/Catamarca` * * `America/Cayenne` * * `America/Cayman` * * `America/Chicago` * * `America/Chihuahua` * * `America/Ciudad_Juarez` * * `America/Coral_Harbour` * * `America/Cordoba` * * `America/Costa_Rica` * * `America/Coyhaique` * * `America/Creston` * * `America/Cuiaba` * * `America/Curacao` * * `America/Danmarkshavn` * * `America/Dawson` * * `America/Dawson_Creek` * * `America/Denver` * * `America/Detroit` * * `America/Dominica` * * `America/Edmonton` * * `America/Eirunepe` * * `America/El_Salvador` * * `America/Ensenada` * * `America/Fort_Nelson` * * `America/Fort_Wayne` * * `America/Fortaleza` * * `America/Glace_Bay` * * `America/Godthab` * * `America/Goose_Bay` * * `America/Grand_Turk` * * `America/Grenada` * * `America/Guadeloupe` * * `America/Guatemala` * * `America/Guayaquil` * * `America/Guyana` * * `America/Halifax` * * `America/Havana` * * `America/Hermosillo` * * `America/Indiana/Indianapolis` * * `America/Indiana/Knox` * * `America/Indiana/Marengo` * * `America/Indiana/Petersburg` * * `America/Indiana/Tell_City` * * `America/Indiana/Vevay` * * `America/Indiana/Vincennes` * * `America/Indiana/Winamac` * * `America/Indianapolis` * * `America/Inuvik` * * `America/Iqaluit` * * `America/Jamaica` * * `America/Jujuy` * * `America/Juneau` * * `America/Kentucky/Louisville` * * `America/Kentucky/Monticello` * * `America/Knox_IN` * * `America/Kralendijk` * * `America/La_Paz` * * `America/Lima` * * `America/Los_Angeles` * * `America/Louisville` * * `America/Lower_Princes` * * `America/Maceio` * * `America/Managua` * * `America/Manaus` * * `America/Marigot` * * `America/Martinique` * * `America/Matamoros` * * `America/Mazatlan` * * `America/Mendoza` * * `America/Menominee` * * `America/Merida` * * `America/Metlakatla` * * `America/Mexico_City` * * `America/Miquelon` * * `America/Moncton` * * `America/Monterrey` * * `America/Montevideo` * * `America/Montreal` * * `America/Montserrat` * * `America/Nassau` * * `America/New_York` * * `America/Nipigon` * * `America/Nome` * * `America/Noronha` * * `America/North_Dakota/Beulah` * * `America/North_Dakota/Center` * * `America/North_Dakota/New_Salem` * * `America/Nuuk` * * `America/Ojinaga` * * `America/Panama` * * `America/Pangnirtung` * * `America/Paramaribo` * * `America/Phoenix` * * `America/Port-au-Prince` * * `America/Port_of_Spain` * * `America/Porto_Acre` * * `America/Porto_Velho` * * `America/Puerto_Rico` * * `America/Punta_Arenas` * * `America/Rainy_River` * * `America/Rankin_Inlet` * * `America/Recife` * * `America/Regina` * * `America/Resolute` * * `America/Rio_Branco` * * `America/Rosario` * * `America/Santa_Isabel` * * `America/Santarem` * * `America/Santiago` * * `America/Santo_Domingo` * * `America/Sao_Paulo` * * `America/Scoresbysund` * * `America/Shiprock` * * `America/Sitka` * * `America/St_Barthelemy` * * `America/St_Johns` * * `America/St_Kitts` * * `America/St_Lucia` * * `America/St_Thomas` * * `America/St_Vincent` * * `America/Swift_Current` * * `America/Tegucigalpa` * * `America/Thule` * * `America/Thunder_Bay` * * `America/Tijuana` * * `America/Toronto` * * `America/Tortola` * * `America/Vancouver` * * `America/Virgin` * * `America/Whitehorse` * * `America/Winnipeg` * * `America/Yakutat` * * `America/Yellowknife` * * `Antarctica/Casey` * * `Antarctica/Davis` * * `Antarctica/DumontDUrville` * * `Antarctica/Macquarie` * * `Antarctica/Mawson` * * `Antarctica/McMurdo` * * `Antarctica/Palmer` * * `Antarctica/Rothera` * * `Antarctica/South_Pole` * * `Antarctica/Syowa` * * `Antarctica/Troll` * * `Antarctica/Vostok` * * `Arctic/Longyearbyen` * * `Asia/Aden` * * `Asia/Almaty` * * `Asia/Amman` * * `Asia/Anadyr` * * `Asia/Aqtau` * * `Asia/Aqtobe` * * `Asia/Ashgabat` * * `Asia/Ashkhabad` * * `Asia/Atyrau` * * `Asia/Baghdad` * * `Asia/Bahrain` * * `Asia/Baku` * * `Asia/Bangkok` * * `Asia/Barnaul` * * `Asia/Beirut` * * `Asia/Bishkek` * * `Asia/Brunei` * * `Asia/Calcutta` * * `Asia/Chita` * * `Asia/Choibalsan` * * `Asia/Chongqing` * * `Asia/Chungking` * * `Asia/Colombo` * * `Asia/Dacca` * * `Asia/Damascus` * * `Asia/Dhaka` * * `Asia/Dili` * * `Asia/Dubai` * * `Asia/Dushanbe` * * `Asia/Famagusta` * * `Asia/Gaza` * * `Asia/Harbin` * * `Asia/Hebron` * * `Asia/Ho_Chi_Minh` * * `Asia/Hong_Kong` * * `Asia/Hovd` * * `Asia/Irkutsk` * * `Asia/Istanbul` * * `Asia/Jakarta` * * `Asia/Jayapura` * * `Asia/Jerusalem` * * `Asia/Kabul` * * `Asia/Kamchatka` * * `Asia/Karachi` * * `Asia/Kashgar` * * `Asia/Kathmandu` * * `Asia/Katmandu` * * `Asia/Khandyga` * * `Asia/Kolkata` * * `Asia/Krasnoyarsk` * * `Asia/Kuala_Lumpur` * * `Asia/Kuching` * * `Asia/Kuwait` * * `Asia/Macao` * * `Asia/Macau` * * `Asia/Magadan` * * `Asia/Makassar` * * `Asia/Manila` * * `Asia/Muscat` * * `Asia/Nicosia` * * `Asia/Novokuznetsk` * * `Asia/Novosibirsk` * * `Asia/Omsk` * * `Asia/Oral` * * `Asia/Phnom_Penh` * * `Asia/Pontianak` * * `Asia/Pyongyang` * * `Asia/Qatar` * * `Asia/Qostanay` * * `Asia/Qyzylorda` * * `Asia/Rangoon` * * `Asia/Riyadh` * * `Asia/Saigon` * * `Asia/Sakhalin` * * `Asia/Samarkand` * * `Asia/Seoul` * * `Asia/Shanghai` * * `Asia/Singapore` * * `Asia/Srednekolymsk` * * `Asia/Taipei` * * `Asia/Tashkent` * * `Asia/Tbilisi` * * `Asia/Tehran` * * `Asia/Tel_Aviv` * * `Asia/Thimbu` * * `Asia/Thimphu` * * `Asia/Tokyo` * * `Asia/Tomsk` * * `Asia/Ujung_Pandang` * * `Asia/Ulaanbaatar` * * `Asia/Ulan_Bator` * * `Asia/Urumqi` * * `Asia/Ust-Nera` * * `Asia/Vientiane` * * `Asia/Vladivostok` * * `Asia/Yakutsk` * * `Asia/Yangon` * * `Asia/Yekaterinburg` * * `Asia/Yerevan` * * `Atlantic/Azores` * * `Atlantic/Bermuda` * * `Atlantic/Canary` * * `Atlantic/Cape_Verde` * * `Atlantic/Faeroe` * * `Atlantic/Faroe` * * `Atlantic/Jan_Mayen` * * `Atlantic/Madeira` * * `Atlantic/Reykjavik` * * `Atlantic/South_Georgia` * * `Atlantic/St_Helena` * * `Atlantic/Stanley` * * `Australia/ACT` * * `Australia/Adelaide` * * `Australia/Brisbane` * * `Australia/Broken_Hill` * * `Australia/Canberra` * * `Australia/Currie` * * `Australia/Darwin` * * `Australia/Eucla` * * `Australia/Hobart` * * `Australia/LHI` * * `Australia/Lindeman` * * `Australia/Lord_Howe` * * `Australia/Melbourne` * * `Australia/NSW` * * `Australia/North` * * `Australia/Perth` * * `Australia/Queensland` * * `Australia/South` * * `Australia/Sydney` * * `Australia/Tasmania` * * `Australia/Victoria` * * `Australia/West` * * `Australia/Yancowinna` * * `Brazil/Acre` * * `Brazil/DeNoronha` * * `Brazil/East` * * `Brazil/West` * * `CET` * * `CST6CDT` * * `Canada/Atlantic` * * `Canada/Central` * * `Canada/Eastern` * * `Canada/Mountain` * * `Canada/Newfoundland` * * `Canada/Pacific` * * `Canada/Saskatchewan` * * `Canada/Yukon` * * `Chile/Continental` * * `Chile/EasterIsland` * * `Cuba` * * `EET` * * `EST` * * `EST5EDT` * * `Egypt` * * `Eire` * * `Etc/GMT` * * `Etc/GMT+0` * * `Etc/GMT+1` * * `Etc/GMT+10` * * `Etc/GMT+11` * * `Etc/GMT+12` * * `Etc/GMT+2` * * `Etc/GMT+3` * * `Etc/GMT+4` * * `Etc/GMT+5` * * `Etc/GMT+6` * * `Etc/GMT+7` * * `Etc/GMT+8` * * `Etc/GMT+9` * * `Etc/GMT-0` * * `Etc/GMT-1` * * `Etc/GMT-10` * * `Etc/GMT-11` * * `Etc/GMT-12` * * `Etc/GMT-13` * * `Etc/GMT-14` * * `Etc/GMT-2` * * `Etc/GMT-3` * * `Etc/GMT-4` * * `Etc/GMT-5` * * `Etc/GMT-6` * * `Etc/GMT-7` * * `Etc/GMT-8` * * `Etc/GMT-9` * * `Etc/GMT0` * * `Etc/Greenwich` * * `Etc/UCT` * * `Etc/UTC` * * `Etc/Universal` * * `Etc/Zulu` * * `Europe/Amsterdam` * * `Europe/Andorra` * * `Europe/Astrakhan` * * `Europe/Athens` * * `Europe/Belfast` * * `Europe/Belgrade` * * `Europe/Berlin` * * `Europe/Bratislava` * * `Europe/Brussels` * * `Europe/Bucharest` * * `Europe/Budapest` * * `Europe/Busingen` * * `Europe/Chisinau` * * `Europe/Copenhagen` * * `Europe/Dublin` * * `Europe/Gibraltar` * * `Europe/Guernsey` * * `Europe/Helsinki` * * `Europe/Isle_of_Man` * * `Europe/Istanbul` * * `Europe/Jersey` * * `Europe/Kaliningrad` * * `Europe/Kiev` * * `Europe/Kirov` * * `Europe/Kyiv` * * `Europe/Lisbon` * * `Europe/Ljubljana` * * `Europe/London` * * `Europe/Luxembourg` * * `Europe/Madrid` * * `Europe/Malta` * * `Europe/Mariehamn` * * `Europe/Minsk` * * `Europe/Monaco` * * `Europe/Moscow` * * `Europe/Nicosia` * * `Europe/Oslo` * * `Europe/Paris` * * `Europe/Podgorica` * * `Europe/Prague` * * `Europe/Riga` * * `Europe/Rome` * * `Europe/Samara` * * `Europe/San_Marino` * * `Europe/Sarajevo` * * `Europe/Saratov` * * `Europe/Simferopol` * * `Europe/Skopje` * * `Europe/Sofia` * * `Europe/Stockholm` * * `Europe/Tallinn` * * `Europe/Tirane` * * `Europe/Tiraspol` * * `Europe/Ulyanovsk` * * `Europe/Uzhgorod` * * `Europe/Vaduz` * * `Europe/Vatican` * * `Europe/Vienna` * * `Europe/Vilnius` * * `Europe/Volgograd` * * `Europe/Warsaw` * * `Europe/Zagreb` * * `Europe/Zaporozhye` * * `Europe/Zurich` * * `GB` * * `GB-Eire` * * `GMT` * * `GMT+0` * * `GMT-0` * * `GMT0` * * `Greenwich` * * `HST` * * `Hongkong` * * `Iceland` * * `Indian/Antananarivo` * * `Indian/Chagos` * * `Indian/Christmas` * * `Indian/Cocos` * * `Indian/Comoro` * * `Indian/Kerguelen` * * `Indian/Mahe` * * `Indian/Maldives` * * `Indian/Mauritius` * * `Indian/Mayotte` * * `Indian/Reunion` * * `Iran` * * `Israel` * * `Jamaica` * * `Japan` * * `Kwajalein` * * `Libya` * * `MET` * * `MST` * * `MST7MDT` * * `Mexico/BajaNorte` * * `Mexico/BajaSur` * * `Mexico/General` * * `NZ` * * `NZ-CHAT` * * `Navajo` * * `PRC` * * `PST8PDT` * * `Pacific/Apia` * * `Pacific/Auckland` * * `Pacific/Bougainville` * * `Pacific/Chatham` * * `Pacific/Chuuk` * * `Pacific/Easter` * * `Pacific/Efate` * * `Pacific/Enderbury` * * `Pacific/Fakaofo` * * `Pacific/Fiji` * * `Pacific/Funafuti` * * `Pacific/Galapagos` * * `Pacific/Gambier` * * `Pacific/Guadalcanal` * * `Pacific/Guam` * * `Pacific/Honolulu` * * `Pacific/Johnston` * * `Pacific/Kanton` * * `Pacific/Kiritimati` * * `Pacific/Kosrae` * * `Pacific/Kwajalein` * * `Pacific/Majuro` * * `Pacific/Marquesas` * * `Pacific/Midway` * * `Pacific/Nauru` * * `Pacific/Niue` * * `Pacific/Norfolk` * * `Pacific/Noumea` * * `Pacific/Pago_Pago` * * `Pacific/Palau` * * `Pacific/Pitcairn` * * `Pacific/Pohnpei` * * `Pacific/Ponape` * * `Pacific/Port_Moresby` * * `Pacific/Rarotonga` * * `Pacific/Saipan` * * `Pacific/Samoa` * * `Pacific/Tahiti` * * `Pacific/Tarawa` * * `Pacific/Tongatapu` * * `Pacific/Truk` * * `Pacific/Wake` * * `Pacific/Wallis` * * `Pacific/Yap` * * `Poland` * * `Portugal` * * `ROC` * * `ROK` * * `Singapore` * * `Turkey` * * `UCT` * * `US/Alaska` * * `US/Aleutian` * * `US/Arizona` * * `US/Central` * * `US/East-Indiana` * * `US/Eastern` * * `US/Hawaii` * * `US/Indiana-Starke` * * `US/Michigan` * * `US/Mountain` * * `US/Pacific` * * `US/Samoa` * * `UTC` * * `Universal` * * `W-SU` * * `WET` * * `Zulu` * * `localtime` */ timezone?: 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Asmera' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Timbuktu' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/ComodRivadavia' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Atka' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Buenos_Aires' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Catamarca' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Coral_Harbour' | 'America/Cordoba' | 'America/Costa_Rica' | 'America/Coyhaique' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Ensenada' | 'America/Fort_Nelson' | 'America/Fort_Wayne' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Godthab' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Indianapolis' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Jujuy' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Knox_IN' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Louisville' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Mendoza' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montreal' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nipigon' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Pangnirtung' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Acre' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rainy_River' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Rosario' | 'America/Santa_Isabel' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Shiprock' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Thunder_Bay' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Virgin' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'America/Yellowknife' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/South_Pole' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Ashkhabad' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Calcutta' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Chongqing' | 'Asia/Chungking' | 'Asia/Colombo' | 'Asia/Dacca' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Harbin' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Istanbul' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kashgar' | 'Asia/Kathmandu' | 'Asia/Katmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macao' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Rangoon' | 'Asia/Riyadh' | 'Asia/Saigon' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Tel_Aviv' | 'Asia/Thimbu' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ujung_Pandang' | 'Asia/Ulaanbaatar' | 'Asia/Ulan_Bator' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faeroe' | 'Atlantic/Faroe' | 'Atlantic/Jan_Mayen' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/ACT' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Canberra' | 'Australia/Currie' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/LHI' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/NSW' | 'Australia/North' | 'Australia/Perth' | 'Australia/Queensland' | 'Australia/South' | 'Australia/Sydney' | 'Australia/Tasmania' | 'Australia/Victoria' | 'Australia/West' | 'Australia/Yancowinna' | 'Brazil/Acre' | 'Brazil/DeNoronha' | 'Brazil/East' | 'Brazil/West' | 'CET' | 'CST6CDT' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Canada/Saskatchewan' | 'Canada/Yukon' | 'Chile/Continental' | 'Chile/EasterIsland' | 'Cuba' | 'EET' | 'EST' | 'EST5EDT' | 'Egypt' | 'Eire' | 'Etc/GMT' | 'Etc/GMT+0' | 'Etc/GMT+1' | 'Etc/GMT+10' | 'Etc/GMT+11' | 'Etc/GMT+12' | 'Etc/GMT+2' | 'Etc/GMT+3' | 'Etc/GMT+4' | 'Etc/GMT+5' | 'Etc/GMT+6' | 'Etc/GMT+7' | 'Etc/GMT+8' | 'Etc/GMT+9' | 'Etc/GMT-0' | 'Etc/GMT-1' | 'Etc/GMT-10' | 'Etc/GMT-11' | 'Etc/GMT-12' | 'Etc/GMT-13' | 'Etc/GMT-14' | 'Etc/GMT-2' | 'Etc/GMT-3' | 'Etc/GMT-4' | 'Etc/GMT-5' | 'Etc/GMT-6' | 'Etc/GMT-7' | 'Etc/GMT-8' | 'Etc/GMT-9' | 'Etc/GMT0' | 'Etc/Greenwich' | 'Etc/UCT' | 'Etc/UTC' | 'Etc/Universal' | 'Etc/Zulu' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belfast' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kiev' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Nicosia' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Tiraspol' | 'Europe/Ulyanovsk' | 'Europe/Uzhgorod' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zaporozhye' | 'Europe/Zurich' | 'GB' | 'GB-Eire' | 'GMT' | 'GMT+0' | 'GMT-0' | 'GMT0' | 'Greenwich' | 'HST' | 'Hongkong' | 'Iceland' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Iran' | 'Israel' | 'Jamaica' | 'Japan' | 'Kwajalein' | 'Libya' | 'MET' | 'MST' | 'MST7MDT' | 'Mexico/BajaNorte' | 'Mexico/BajaSur' | 'Mexico/General' | 'NZ' | 'NZ-CHAT' | 'Navajo' | 'PRC' | 'PST8PDT' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Enderbury' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Johnston' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Ponape' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Samoa' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Truk' | 'Pacific/Wake' | 'Pacific/Wallis' | 'Pacific/Yap' | 'Poland' | 'Portugal' | 'ROC' | 'ROK' | 'Singapore' | 'Turkey' | 'UCT' | 'US/Alaska' | 'US/Aleutian' | 'US/Arizona' | 'US/Central' | 'US/East-Indiana' | 'US/Eastern' | 'US/Hawaii' | 'US/Indiana-Starke' | 'US/Michigan' | 'US/Mountain' | 'US/Pacific' | 'US/Samoa' | 'UTC' | 'Universal' | 'W-SU' | 'WET' | 'Zulu' | 'localtime' | ''; /** * How many consecutive missed or failed check-ins in a row before creating a new issue. */ failure_issue_threshold?: number | null; /** * How many successful check-ins in a row before resolving an issue. */ recovery_threshold?: number | null; }; export type CreateExternalIssueRequest = { /** * The title of the external issue to create. */ title: string; /** * The description (body) of the external issue to create. */ description?: string; }; export type CreateOrganizationReleaseResponse = { ref?: string | null; url?: string | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; owner?: { [key: string]: unknown; } | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; firstEvent?: string | null; lastEvent?: string | null; currentProjectMeta?: { [key: string]: unknown; } | null; userAgent?: string | null; adoptionStages?: { [key: string]: unknown; } | null; id: number; version: string; newGroups: number; status: string; shortVersion: string; versionInfo: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; data: { [key: string]: unknown; }; commitCount: number; deployCount: number; authors: Array<{ identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }>; projects: Array<{ healthData?: { durationP50?: number | null; durationP90?: number | null; crashFreeUsers?: number | null; crashFreeSessions?: number | null; totalUsers?: number | null; totalUsers24h?: number | null; totalProjectUsers24h?: number | null; totalSessions?: number | null; totalSessions24h?: number | null; totalProjectSessions24h?: number | null; adoption?: number | null; sessionsAdoption?: number | null; sessionsCrashed: number; sessionsErrored: number; hasHealthData: boolean; stats: { [key: string]: unknown; }; } | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; id: number; slug: string; name: string; platform: string | null; platforms: Array | null; hasHealthData: boolean; newGroups: number; }>; }; export type CreateReplayDeletionJob = { data: { id: number; dateCreated: string; dateUpdated: string; rangeStart: string; rangeEnd: string; environments: Array; status: string; query: string; countDeleted: number; }; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type Dashboard = { /** * The user defined title for this dashboard. */ title: string; /** * A dashboard's unique id. */ id?: string; /** * A json list of widgets saved in this dashboard. */ widgets?: Array<{ id?: string; title?: string; description?: string | null; thresholds?: { [key: string]: unknown; } | null; /** * * `line` * * `area` * * `bar` * * `table` * * `big_number` * * `details` * * `categorical_bar` * * `wheel` * * `rage_and_dead_clicks` * * `server_tree` * * `text` * * `agents_traces_table` * * `heatmap` */ display_type?: 'line' | 'area' | 'bar' | 'table' | 'big_number' | 'details' | 'categorical_bar' | 'wheel' | 'rage_and_dead_clicks' | 'server_tree' | 'text' | 'agents_traces_table' | 'heatmap'; interval?: string; queries?: Array<{ id?: string; fields?: Array; aggregates?: Array | null; columns?: Array | null; field_aliases?: Array | null; name?: string; conditions?: string; orderby?: string; is_hidden?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ on_demand_extraction?: { extraction_state?: string; enabled?: boolean; }; on_demand_extraction_disabled?: boolean; selected_aggregate?: number | null; linked_dashboards?: Array<{ field: string; dashboard_id: string; }> | null; }>; /** * * `discover` * * `issue` * * `metrics` * * `error-events` * * `transaction-like` * * `spans` * * `logs` * * `tracemetrics` * * `preprod-app-size` */ widget_type?: 'discover' | 'issue' | 'metrics' | 'error-events' | 'transaction-like' | 'spans' | 'logs' | 'tracemetrics' | 'preprod-app-size' | null; limit?: number | null; /** * Widget grid layout position and dimensions. * * The dashboard uses a 6-column grid. Required keys: x, y, w, h, minH. * Constraints: x (0-5), y (>= 0), w (1-6), h (>= 1), minH (>= 1), and x + w <= 6. */ layout?: { /** * Column position (0-indexed). */ x: number; /** * Row position (0-indexed). */ y: number; /** * Width in grid columns (1-6). */ w: number; /** * Height in grid rows. */ h: number; /** * Minimum height in grid rows. */ min_h: number; } | null; /** * * `auto` * * `dataMin` */ axis_range?: 'auto' | 'dataMin' | null; /** * * `default` * * `breakdown` */ legend_type?: 'default' | 'breakdown' | null; }>; /** * The saved projects filter for this dashboard. */ projects?: Array; /** * The saved environment filter for this dashboard. */ environment?: Array | null; /** * The saved time range period for this dashboard. */ period?: string | null; /** * The saved start time for this dashboard. */ start?: string | null; /** * The saved end time for this dashboard. */ end?: string | null; /** * The saved filters for this dashboard. */ filters?: { [key: string]: unknown; }; /** * Setting that lets you display saved time range for this dashboard in UTC. */ utc?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ permissions?: { /** * Whether the dashboard is editable by everyone. */ is_editable_by_everyone: boolean; /** * List of team IDs that have edit access to a dashboard. */ teams_with_edit_access?: Array; } | null; /** * Favorite the dashboard automatically for the request user */ is_favorited?: boolean; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type DashboardDetails = { /** * A dashboard's unique id. */ id?: string; /** * The user-defined dashboard title. */ title?: string; /** * A json list of widgets saved in this dashboard. */ widgets?: Array<{ id?: string; title?: string; description?: string | null; thresholds?: { [key: string]: unknown; } | null; /** * * `line` * * `area` * * `bar` * * `table` * * `big_number` * * `details` * * `categorical_bar` * * `wheel` * * `rage_and_dead_clicks` * * `server_tree` * * `text` * * `agents_traces_table` * * `heatmap` */ display_type?: 'line' | 'area' | 'bar' | 'table' | 'big_number' | 'details' | 'categorical_bar' | 'wheel' | 'rage_and_dead_clicks' | 'server_tree' | 'text' | 'agents_traces_table' | 'heatmap'; interval?: string; queries?: Array<{ id?: string; fields?: Array; aggregates?: Array | null; columns?: Array | null; field_aliases?: Array | null; name?: string; conditions?: string; orderby?: string; is_hidden?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ on_demand_extraction?: { extraction_state?: string; enabled?: boolean; }; on_demand_extraction_disabled?: boolean; selected_aggregate?: number | null; linked_dashboards?: Array<{ field: string; dashboard_id: string; }> | null; }>; /** * * `discover` * * `issue` * * `metrics` * * `error-events` * * `transaction-like` * * `spans` * * `logs` * * `tracemetrics` * * `preprod-app-size` */ widget_type?: 'discover' | 'issue' | 'metrics' | 'error-events' | 'transaction-like' | 'spans' | 'logs' | 'tracemetrics' | 'preprod-app-size' | null; limit?: number | null; /** * Widget grid layout position and dimensions. * * The dashboard uses a 6-column grid. Required keys: x, y, w, h, minH. * Constraints: x (0-5), y (>= 0), w (1-6), h (>= 1), minH (>= 1), and x + w <= 6. */ layout?: { /** * Column position (0-indexed). */ x: number; /** * Row position (0-indexed). */ y: number; /** * Width in grid columns (1-6). */ w: number; /** * Height in grid rows. */ h: number; /** * Minimum height in grid rows. */ min_h: number; } | null; /** * * `auto` * * `dataMin` */ axis_range?: 'auto' | 'dataMin' | null; /** * * `default` * * `breakdown` */ legend_type?: 'default' | 'breakdown' | null; }>; /** * The saved projects filter for this dashboard. */ projects?: Array; /** * The saved environment filter for this dashboard. */ environment?: Array | null; /** * The saved time range period for this dashboard. */ period?: string | null; /** * The saved start time for this dashboard. */ start?: string | null; /** * The saved end time for this dashboard. */ end?: string | null; /** * The saved filters for this dashboard. */ filters?: { [key: string]: unknown; }; /** * Setting that lets you display saved time range for this dashboard in UTC. */ utc?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ permissions?: { /** * Whether the dashboard is editable by everyone. */ is_editable_by_everyone: boolean; /** * List of team IDs that have edit access to a dashboard. */ teams_with_edit_access?: Array; } | null; }; export type DashboardDetailsModel = { environment?: Array; period?: string; utc?: string; expired?: boolean; start?: string; end?: string; id: string; title: string; dateCreated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; widgets: Array<{ id: string; title: string; description: string | null; displayType: string; thresholds: { preferredPolarity?: string; max_values: { [key: string]: number; }; unit: string; } | null; interval: string; dateCreated: string; dashboardId: string; queries: Array<{ id: string; name: string; fields: Array; aggregates: Array; columns: Array; fieldAliases: Array; conditions: string; orderby: string; widgetId: string; onDemand: Array<{ enabled: boolean; extractionState: string; dashboardWidgetQueryId: number; }>; isHidden: boolean; selectedAggregate: number | null; linkedDashboards: Array<{ field: string; dashboardId: number; }>; }>; limit: number | null; widgetType: string | null; layout: { [key: string]: number; } | null; axisRange: string | null; legendType: 'default' | 'breakdown' | null; datasetSource: string | null; exploreUrls: Array | null; changedReason: Array<{ orderby: Array<{ [key: string]: string; }> | null; equations: Array<{ [key: string]: string | Array; }> | null; selected_columns: Array; }> | null; }>; projects: Array; filters: { release?: Array; releaseId?: Array; globalFilter?: Array<{ [key: string]: unknown; }>; }; permissions: { isEditableByEveryone: boolean; teamsWithEditAccess: Array; } | null; isFavorited: boolean; prebuiltId: number | null; }; export type DashboardListResponse = Array<{ id: string; title: string; dateCreated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; environment: Array; filters: { release?: Array; releaseId?: Array; globalFilter?: Array<{ [key: string]: unknown; }>; }; lastVisited: string | null; widgetDisplay: Array; widgetPreview: Array<{ [key: string]: string; }>; permissions: { isEditableByEveryone: boolean; teamsWithEditAccess: Array; } | null; isFavorited: boolean; projects: Array; prebuiltId: number | null; }>; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type DashboardPermissions = { /** * Whether the dashboard is editable by everyone. */ is_editable_by_everyone: boolean; /** * List of team IDs that have edit access to a dashboard. */ teams_with_edit_access?: Array; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type DashboardWidget = { id?: string; title?: string; description?: string | null; thresholds?: { [key: string]: unknown; } | null; /** * * `line` * * `area` * * `bar` * * `table` * * `big_number` * * `details` * * `categorical_bar` * * `wheel` * * `rage_and_dead_clicks` * * `server_tree` * * `text` * * `agents_traces_table` * * `heatmap` */ display_type?: 'line' | 'area' | 'bar' | 'table' | 'big_number' | 'details' | 'categorical_bar' | 'wheel' | 'rage_and_dead_clicks' | 'server_tree' | 'text' | 'agents_traces_table' | 'heatmap'; interval?: string; queries?: Array<{ id?: string; fields?: Array; aggregates?: Array | null; columns?: Array | null; field_aliases?: Array | null; name?: string; conditions?: string; orderby?: string; is_hidden?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ on_demand_extraction?: { extraction_state?: string; enabled?: boolean; }; on_demand_extraction_disabled?: boolean; selected_aggregate?: number | null; linked_dashboards?: Array<{ field: string; dashboard_id: string; }> | null; }>; /** * * `discover` * * `issue` * * `metrics` * * `error-events` * * `transaction-like` * * `spans` * * `logs` * * `tracemetrics` * * `preprod-app-size` */ widget_type?: 'discover' | 'issue' | 'metrics' | 'error-events' | 'transaction-like' | 'spans' | 'logs' | 'tracemetrics' | 'preprod-app-size' | null; limit?: number | null; /** * Widget grid layout position and dimensions. * * The dashboard uses a 6-column grid. Required keys: x, y, w, h, minH. * Constraints: x (0-5), y (>= 0), w (1-6), h (>= 1), minH (>= 1), and x + w <= 6. */ layout?: { /** * Column position (0-indexed). */ x: number; /** * Row position (0-indexed). */ y: number; /** * Width in grid columns (1-6). */ w: number; /** * Height in grid rows. */ h: number; /** * Minimum height in grid rows. */ min_h: number; } | null; /** * * `auto` * * `dataMin` */ axis_range?: 'auto' | 'dataMin' | null; /** * * `default` * * `breakdown` */ legend_type?: 'default' | 'breakdown' | null; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type DashboardWidgetQuery = { id?: string; fields?: Array; aggregates?: Array | null; columns?: Array | null; field_aliases?: Array | null; name?: string; conditions?: string; orderby?: string; is_hidden?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ on_demand_extraction?: { extraction_state?: string; enabled?: boolean; }; on_demand_extraction_disabled?: boolean; selected_aggregate?: number | null; linked_dashboards?: Array<{ field: string; dashboard_id: string; }> | null; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type DashboardWidgetQueryOnDemand = { extraction_state?: string; enabled?: boolean; }; export type DataForwarder = { /** * The ID of the organization related to the data forwarder. */ organization_id: number; /** * The provider of the data forwarder. One of "segment", "sqs", or "splunk". * * * `segment` - Segment * * `sqs` - Amazon SQS * * `splunk` - Splunk */ provider: 'segment' | 'sqs' | 'splunk'; /** * Whether the data forwarder is enabled. */ is_enabled?: boolean; /** * Whether to enroll new projects automatically, after they're created. */ enroll_new_projects?: boolean; /** * The configuration for the data forwarder, specific to the provider type. * For a 'sqs' provider, the required keys are queue_url, region, access_key, secret_key. If using a FIFO queue, you must also provide a message_group_id, though s3_bucket is optional. * For a 'segment' provider, the required keys are write_key. * For a 'splunk' provider, the required keys are instance_url, index, source, token. */ config?: { [key: string]: string; }; /** * The IDs of the projects connected to the data forwarder. Missing project IDs will be unenrolled if previously enrolled. */ project_ids?: Array; }; export type DataForwarderResponse = { id: string; organizationId: string; isEnabled: boolean; enrollNewProjects: boolean; enrolledProjects: Array<{ id: string; slug: string; platform: string | null; }>; provider: string; config: { [key: string]: string; } | null; projectConfigs: Array<{ id: string; isEnabled: boolean; dataForwarderId: string; project: { id: string; slug: string; platform: string | null; }; overrides: { [key: string]: string; }; effectiveConfig: { [key: string]: string; }; dateAdded: string; dateUpdated: string; }>; dateAdded: string; dateUpdated: string; }; export type Deploy = { /** * The environment you're deploying to */ environment: string; /** * The optional name of the deploy */ name?: string | null; /** * The optional URL that points to the deploy */ url?: string | null; /** * An optional date that indicates when the deploy started */ dateStarted?: string | null; /** * An optional date that indicates when the deploy ended. If not provided, the current time is used. */ dateFinished?: string | null; /** * The optional list of project slugs to create a deploy within. If not provided, deploys are created for all of the release's projects. */ projects?: Array; }; /** * Serializer for Deploy response objects */ export type DeployResponse = { /** * The ID of the deploy */ id: string; /** * The environment name */ environment: string; /** * An optional date that indicates when the deploy started */ dateStarted: string | null; /** * An optional date that indicates when the deploy ended */ dateFinished: string; /** * The optional name of the deploy */ name: string | null; /** * The optional URL that points to the deploy */ url: string | null; }; export type DetailedProject = { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; team?: { id: string; name: string; slug: string; }; teams: Array<{ id: string; name: string; slug: string; }>; latestRelease: { version: string; } | null; options: { [key: string]: unknown; }; digestsMinDelay: number; digestsMaxDelay: number; subjectPrefix: string; allowedDomains: Array; resolveAge: number; dataScrubber: boolean; dataScrubberDefaults: boolean; safeFields: Array; storeCrashReports: number | null; sensitiveFields: Array; subjectTemplate: string; securityToken: string; securityTokenHeader: string | null; verifySSL: boolean; scrubIPAddresses: boolean; scrapeJavaScript: boolean; enableAutoReleaseCreation: boolean; highlightTags: Array; highlightContext: { [key: string]: unknown; }; highlightPreset: { tags: Array; context: { [key: string]: Array; }; }; groupingConfig: string; derivedGroupingEnhancements: string; groupingEnhancements: string; secondaryGroupingExpiry: number; secondaryGroupingConfig: string | null; fingerprintingRules: string; organization: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; platforms: Array; processingIssues: number; defaultEnvironment: string | null; relayPiiConfig: string | null; builtinSymbolSources: Array; dynamicSamplingBiases: Array<{ [key: string]: string | boolean; }> | null; symbolSources: string; isDynamicallySampled: boolean; tempestFetchScreenshots: boolean; autofixAutomationTuning: string; seerScannerAutomation: boolean; seerNightshiftTweaks: unknown; scmSourceContextEnabled: boolean; debugFilesRole: string | null; }; export type Detector = { owner?: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; createdBy?: string | null; latestGroup?: { [key: string]: unknown; } | null; description?: string | null; id: string; projectId: string | null; name: string; type: string; workflowIds: Array | null; dateCreated: string; dateUpdated: string; dataSources: Array<{ [key: string]: unknown; }> | null; conditionGroup: { [key: string]: unknown; } | null; config: { [key: string]: unknown; }; enabled: boolean; }; export type DiscoverSavedQuery = { /** * The user-defined saved query name. */ name: string; /** * The saved projects filter for this query. */ projects?: Array; /** * The dataset you would like to query. Note: `discover` is a **deprecated** value. The allowed values are: `error-events`, `transaction-like` * * * `discover` * * `error-events` * * `transaction-like` */ queryDataset?: 'discover' | 'error-events' | 'transaction-like'; /** * The saved start time for this saved query. */ start?: string | null; /** * The saved end time for this saved query. */ end?: string | null; /** * The saved time range period for this saved query. */ range?: string | null; /** * The fields, functions, or equations that can be requested for the query. At most 20 fields can be selected per request. Each field can be one of the following types: * - A built-in key field. See possible fields in the [properties table](/product/sentry-basics/search/searchable-properties/#properties-table), under any field that is an event property. * - example: `field=transaction` * - A tag. Tags should use the `tag[]` formatting to avoid ambiguity with any fields * - example: `field=tag[isEnterprise]` * - A function which will be in the format of `function_name(parameters,...)`. See possible functions in the [query builder documentation](/product/discover-queries/query-builder/#stacking-functions). * - when a function is included, Discover will group by any tags or fields * - example: `field=count_if(transaction.duration,greater,300)` * - An equation when prefixed with `equation|`. Read more about [equations here](/product/discover-queries/query-builder/query-equations/). * - example: `field=equation|count_if(transaction.duration,greater,300) / count() * 100` * */ fields?: Array | null; /** * How to order the query results. Must be something in the `field` list, excluding equations. */ orderby?: string | null; /** * The name of environments to filter by. */ environment?: Array | null; /** * Filters results by using [query syntax](/product/sentry-basics/search/). */ query?: string | null; /** * Aggregate functions to be plotted on the chart. */ yAxis?: Array | null; /** * Visualization type for saved query chart. Allowed values are: * - default * - previous * - top5 * - daily * - dailytop5 * - bar * */ display?: string | null; /** * Number of top events' timeseries to be visualized. */ topEvents?: number | null; /** * Resolution of the time series. */ interval?: string | null; }; export type DiscoverSavedQueryListResponse = Array<{ environment?: Array; query?: string; fields?: Array; widths?: Array; conditions?: Array; aggregations?: Array; range?: string; start?: string; end?: string; orderby?: string; limit?: string; yAxis?: Array; display?: string; topEvents?: number; interval?: string; exploreQuery?: { [key: string]: unknown; }; id: string; name: string; projects: Array; version: number; queryDataset: string; datasetSource: string; expired: boolean; dateCreated: string; dateUpdated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; }>; export type DiscoverSavedQueryModel = { environment?: Array; query?: string; fields?: Array; widths?: Array; conditions?: Array; aggregations?: Array; range?: string; start?: string; end?: string; orderby?: string; limit?: string; yAxis?: Array; display?: string; topEvents?: number; interval?: string; exploreQuery?: { [key: string]: unknown; }; id: string; name: string; projects: Array; version: number; queryDataset: string; datasetSource: string; expired: boolean; dateCreated: string; dateUpdated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; }; /** * Configures multiple options for the Javascript Loader Script. * - `Performance Monitoring` * - `Debug Bundles & Logging` * - `Session Replay` - Note that the loader will load the ES6 bundle instead of the ES5 bundle. * - `User Feedback` - Note that the loader will load the ES6 bundle instead of the ES5 bundle. * - `Logs and Metrics` - Note that the loader will load the ES6 bundle instead of the ES5 bundle. Requires SDK >= 10.0.0. * ```json * { * "dynamicSdkLoaderOptions": { * "hasReplay": true, * "hasPerformance": true, * "hasDebug": true, * "hasFeedback": true, * "hasLogsAndMetrics": true * } * } * ``` */ export type DynamicSdkLoaderOption = { hasReplay?: boolean; hasPerformance?: boolean; hasDebug?: boolean; hasFeedback?: boolean; hasLogsAndMetrics?: boolean; }; export type Environment = { /** * Specify `true` to make the environment visible or `false` to make the environment hidden. */ isHidden: boolean; }; export type EnvironmentProject = { id: string; name: string; isHidden: boolean; }; export type EventAttachmentDetailsResponse = { id: string; event_id: string; type: string; name: string; mimetype: string | null; dateCreated: string; size: number; headers: { [key: string]: string | null; }; sha1: string | null; }; export type EventIdLookupResponse = { organizationSlug: string; projectSlug: string; groupId: string; eventId: string; event: { id: string; groupID: string | null; eventID: string; projectID: string; message: string | null; title: string; location: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string; dateReceived: string | null; contexts: { [key: string]: unknown; } | null; size: number | null; entries: Array; dist: string | null; sdk: { name: string | null; version: string | null; } | null; context: { [key: string]: unknown; } | null; packages: { [key: string]: unknown; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; metadata: { [key: string]: unknown; }; errors: Array<{ type: string; message: string; data: { [key: string]: unknown; }; }>; occurrence: { id: string; projectId: number; eventId: string; fingerprint: Array; issueTitle: string; subtitle: string; resourceId: string | null; evidenceData: { [key: string]: unknown; }; evidenceDisplay: Array<{ name: string; value: string; important: boolean; }>; type: number; detectionTime: number; level: string | null; culprit: string | null; assignee: string | null; priority: number | null; } | null; _meta: { [key: string]: unknown; }; crashFile?: string | null; culprit?: string | null; dateCreated?: string; fingerprints?: Array; groupingConfig?: { id: string; enhancements: string; }; startTimestamp?: number; endTimestamp?: number; measurements?: { [key: string]: { value: number; unit: string | null; }; } | null; breakdowns?: { [key: string]: { [key: string]: { value: number; unit: string | null; }; }; } | null; }; }; /** * Serializer for the agent-based autofix requests. */ export type ExplorerAutofixRequest = { /** * Which autofix step to run. * * * `root_cause` * * `solution` * * `code_changes` * * `pr_iteration` * * `open_pr` * * `coding_agent_handoff` */ step?: 'root_cause' | 'solution' | 'code_changes' | 'pr_iteration' | 'open_pr' | 'coding_agent_handoff'; /** * Where the issue fix process should stop. If not provided, will run to root cause. * * * `root_cause` * * `solution` * * `code_changes` * * `open_pr` */ stopping_point?: 'root_cause' | 'solution' | 'code_changes' | 'open_pr'; /** * **Deprecated** in favor of sentry_run_id; retained for backward compatibility. The existing run's numeric Seer id to continue. If neither run_id nor sentry_run_id is provided, starts a new run. */ run_id?: number; /** * Existing run's UUID to continue. Preferred over run_id, and takes precedence when both are given. */ sentry_run_id?: string; /** * Coding agent integration ID. Required for coding_agent_handoff step (unless provider is specified). */ integration_id?: number; /** * Coding agent provider (e.g., 'github_copilot'). Alternative to integration_id for user-authenticated providers. */ provider?: string; /** * Optional user context to append to the step prompt. */ user_context?: string; /** * Optional repository name for which to create the pull request. Do not pass a repository name to create pull requests in all relevant repositories. */ repo_name?: string; /** * Block index to insert at. When provided, truncates blocks after this point for retry-from-step. */ insert_index?: number; /** * Referrer identifying where the issue fix was triggered from. */ referrer?: string; /** * Override bash mode tools. */ enable_bash_tools?: boolean; }; export type ExternalActor = { externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }; export type ExternalIssueLinkResponse = { id: number; key: string; url: string; integrationId: number; displayName: string; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type ExternalTeam = { /** * The associated name for the provider. */ external_name: string; /** * The provider of the external actor. * * * `github` * * `github_enterprise` * * `jira_server` * * `slack` * * `slack_staging` * * `perforce` * * `gitlab` * * `msteams` * * `custom_scm` */ provider: 'github' | 'github_enterprise' | 'jira_server' | 'slack' | 'slack_staging' | 'perforce' | 'gitlab' | 'msteams' | 'custom_scm'; /** * The Integration ID. */ integration_id: number; /** * The associated user ID for provider. */ external_id?: string | null; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type ExternalUser = { /** * The user ID in Sentry. */ user_id: number; /** * The associated name for the provider. */ external_name: string; /** * The provider of the external actor. * * * `github` * * `github_enterprise` * * `jira_server` * * `slack` * * `slack_staging` * * `perforce` * * `gitlab` * * `msteams` * * `custom_scm` */ provider: 'github' | 'github_enterprise' | 'jira_server' | 'slack' | 'slack_staging' | 'perforce' | 'gitlab' | 'msteams' | 'custom_scm'; /** * The Integration ID. */ integration_id: number; /** * The external actor ID. */ readonly id: number; /** * The associated user ID for provider. */ external_id?: string | null; }; /** * Filter settings for the source. This is optional for all sources. * * **`filetypes`** ***(list)*** - A list of file types that can be found on this source. If this is left empty, all file types will be enabled. The options are: * - `pe` - Windows executable files * - `pdb` - Windows debug files * - `portablepdb` - .NET portable debug files * - `mach_code` - MacOS executable files * - `mach_debug` - MacOS debug files * - `elf_code` - ELF executable files * - `elf_debug` - ELF debug files * - `wasm_code` - WASM executable files * - `wasm_debug` - WASM debug files * - `breakpad` - Breakpad symbol files * - `sourcebundle` - Source code bundles * - `uuidmap` - Apple UUID mapping files * - `bcsymbolmap` - Apple bitcode symbol maps * - `il2cpp` - Unity IL2CPP mapping files * - `proguard` - ProGuard mapping files * * **`path_patterns`** ***(list)*** - A list of glob patterns to check against the debug and code file paths of debug files. Only files that match one of these patterns will be requested from the source. If this is left empty, no path-based filtering takes place. * * **`requires_checksum`** ***(boolean)*** - Whether this source requires a debug checksum to be sent with each request. Defaults to `false`. * * ```json * { * "filters": { * "filetypes": ["pe", "pdb", "portablepdb"], * "path_patterns": ["*ffmpeg*"] * } * } * ``` */ export type Filters = { /** * The file types enabled for the source. */ filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; /** * The debug and code file paths enabled for the source. */ path_patterns?: Array; /** * Whether the source requires debug checksums. */ requires_checksum?: boolean; }; export type GetReplay = { data: { id?: string; project_id?: string; trace_ids?: Array; error_ids?: Array; environment?: string | null; tags?: { [key: string]: Array; } | Array; user?: { id?: string | null; username?: string | null; email?: string | null; ip?: string | null; display_name?: string | null; geo?: { city?: string | null; country_code?: string | null; region?: string | null; subdivision?: string | null; }; }; sdk?: { name?: string | null; version?: string | null; }; os?: { name?: string | null; version?: string | null; }; browser?: { name?: string | null; version?: string | null; }; device?: { name?: string | null; brand?: string | null; model?: string | null; family?: string | null; }; ota_updates?: { channel?: string | null; runtime_version?: string | null; update_id?: string | null; }; is_archived?: boolean | null; urls?: Array | null; segment_names?: Array | null; clicks?: Array<{ [key: string]: unknown; }>; count_dead_clicks?: number | null; count_rage_clicks?: number | null; count_errors?: number | null; duration?: number | null; finished_at?: string | null; started_at?: string | null; activity?: number | null; count_urls?: number | null; replay_type?: string; count_segments?: number | null; platform?: string | null; releases?: Array; dist?: string | null; count_warnings?: number | null; count_infos?: number | null; has_viewed?: boolean; }; }; export type GetReplayDeletionJob = { data: { id: number; dateCreated: string; dateUpdated: string; rangeStart: string; rangeEnd: string; environments: Array; status: string; query: string; countDeleted: number; }; }; export type GetReplayRecordingSegment = { data: { replayId: string; segmentId: number; projectId: string; dateAdded: string | null; }; }; export type GetReplayViewedBy = { data: { viewed_by: Array<{ [key: string]: unknown; }>; }; }; export type GroupDetailsResponse = { isUnhandled?: boolean; count?: string; userCount?: number; firstSeen?: string | null; lastSeen?: string | null; derivedData?: { blocker: string; progress: string; status: string; viewCount: number; hasOpenFixPr: boolean; isAssigned: boolean; hasRootCause: boolean; lastCompletedAutofixStep: string; lastProgressedAt: string | null; }; id: string; shareId: string | null; shortId: string; title: string; culprit: string | null; permalink: string; logger: string | null; level: 'sample' | 'debug' | 'info' | 'warning' | 'error' | 'fatal' | 'unknown'; status: 'resolved' | 'ignored' | 'pending_deletion' | 'pending_merge' | 'reprocessing' | 'unresolved'; statusDetails: { ignoreCount?: number; ignoreUntil?: string; ignoreUserCount?: number; ignoreUserWindow?: number; ignoreWindow?: number; actor?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; inNextRelease?: boolean; inRelease?: string; inCommit?: string; pendingEvents?: number; info?: { dateCreated: string; syncCount: number; totalEvents: number; } | null; }; substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; isPublic: boolean; platform: string | null; priority: 'low' | 'medium' | 'high' | null; priorityLockedAt: string | null; seerFixabilityScore: number | null; seerAutofixLastTriggered: string | null; seerExplorerAutofixLastTriggered: string | null; project: { id: string; name: string; slug: string; platform: string | null; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; issueType: string; issueCategory: string; metadata: { [key: string]: unknown; }; numComments: number; assignedTo: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; isBookmarked: boolean; isSubscribed: boolean; subscriptionDetails: { disabled?: boolean; reason?: string; } | null; hasSeen: boolean; annotations: Array<{ displayName: string; url: string; }>; firstRelease?: { [key: string]: unknown; } | null; lastRelease?: { [key: string]: unknown; } | null; tags?: Array<{ [key: string]: unknown; }>; stats?: { [key: string]: Array>; }; inbox?: { reason: number; reason_details: { until: string | null; count: number | null; window: number | null; user_count: number | null; user_window: number | null; } | null; date_added: string; } | null; owners?: Array<{ type: string; owner: string; date_added: string; }> | null; forecast?: { [key: string]: unknown; }; integrationIssues?: Array<{ [key: string]: unknown; }>; sentryAppIssues?: Array<{ id: string; issueId: string; serviceType: string; displayName: string; webUrl: string; }>; latestEventHasAttachments?: boolean; activity: Array<{ [key: string]: unknown; }>; seenBy: Array<{ [key: string]: unknown; }>; userReportCount: number; participants: Array<{ [key: string]: unknown; }>; }; export type GroupEventsResponseDict = Array<{ id: string; 'event.type': string; groupID: string | null; eventID: string; projectID: string; message: string; title: string; location: string | null; culprit: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string | null; dateCreated: string; crashFile: string | null; metadata: { [key: string]: unknown; }; }>; export type GroupExternalIssueResponse = Array<{ id: string; issueId: string; serviceType: string; displayName: string; webUrl: string; }>; export type GroupHashesResponse = Array<{ id: string; latestEvent: { id: string; groupID: string | null; eventID: string; projectID: string; message: string | null; title: string; location: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string; dateReceived: string | null; contexts: { [key: string]: unknown; } | null; size: number | null; entries: Array; dist: string | null; sdk: { name: string | null; version: string | null; } | null; context: { [key: string]: unknown; } | null; packages: { [key: string]: unknown; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; metadata: { [key: string]: unknown; }; errors: Array<{ type: string; message: string; data: { [key: string]: unknown; }; }>; occurrence: { id: string; projectId: number; eventId: string; fingerprint: Array; issueTitle: string; subtitle: string; resourceId: string | null; evidenceData: { [key: string]: unknown; }; evidenceDisplay: Array<{ name: string; value: string; important: boolean; }>; type: number; detectionTime: number; level: string | null; culprit: string | null; assignee: string | null; priority: number | null; } | null; _meta: { [key: string]: unknown; }; crashFile?: string | null; culprit?: string | null; dateCreated?: string; fingerprints?: Array; groupingConfig?: { id: string; enhancements: string; }; startTimestamp?: number; endTimestamp?: number; measurements?: { [key: string]: { value: number; unit: string | null; }; } | null; breakdowns?: { [key: string]: { [key: string]: { value: number; unit: string | null; }; }; } | null; } | { id: string; 'event.type': string; groupID: string | null; eventID: string; projectID: string; message: string; title: string; location: string | null; culprit: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string | null; dateCreated: string; crashFile: string | null; metadata: { [key: string]: unknown; }; } | { [key: string]: unknown; } | null; mergedBySeer: boolean; seerMatchDistance: number | null; }>; export type GroupUpdateResponse = { isUnhandled?: boolean; count?: string; userCount?: number; firstSeen?: string | null; lastSeen?: string | null; derivedData?: { blocker: string; progress: string; status: string; viewCount: number; hasOpenFixPr: boolean; isAssigned: boolean; hasRootCause: boolean; lastCompletedAutofixStep: string; lastProgressedAt: string | null; }; id: string; shareId: string | null; shortId: string; title: string; culprit: string | null; permalink: string; logger: string | null; level: 'sample' | 'debug' | 'info' | 'warning' | 'error' | 'fatal' | 'unknown'; status: 'resolved' | 'ignored' | 'pending_deletion' | 'pending_merge' | 'reprocessing' | 'unresolved'; statusDetails: { ignoreCount?: number; ignoreUntil?: string; ignoreUserCount?: number; ignoreUserWindow?: number; ignoreWindow?: number; actor?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; inNextRelease?: boolean; inRelease?: string; inCommit?: string; pendingEvents?: number; info?: { dateCreated: string; syncCount: number; totalEvents: number; } | null; }; substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; isPublic: boolean; platform: string | null; priority: 'low' | 'medium' | 'high' | null; priorityLockedAt: string | null; seerFixabilityScore: number | null; seerAutofixLastTriggered: string | null; seerExplorerAutofixLastTriggered: string | null; project: { id: string; name: string; slug: string; platform: string | null; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; issueType: string; issueCategory: string; metadata: { [key: string]: unknown; }; numComments: number; assignedTo: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; isBookmarked: boolean; isSubscribed: boolean; subscriptionDetails: { disabled?: boolean; reason?: string; } | null; hasSeen: boolean; annotations: Array<{ displayName: string; url: string; }>; }; export type GroupValidator = { /** * If true, marks the issue as reviewed by the requestor. */ inbox: boolean; /** * Limit mutations to only issues with the given status. * * * `resolved` * * `unresolved` * * `ignored` * * `resolvedInNextRelease` * * `muted` */ status: 'resolved' | 'unresolved' | 'ignored' | 'resolvedInNextRelease' | 'muted'; /** * Additional details about the resolution. Status detail updates that include release data are only allowed for issues within a single project. */ statusDetails: { /** * If true, marks the issue as resolved in the next release. */ inNextRelease: boolean; /** * The version of the release that the issue should be resolved in.If set to `latest`, the latest release will be used. */ inRelease: string; /** * The commit data that the issue should use for resolution. */ inCommit?: { /** * The SHA of the resolving commit. */ commit: string; /** * The name of the repository (as it appears in Sentry). */ repository: string; }; /** * Ignore the issue until for this many minutes. */ ignoreDuration: number; /** * Ignore the issue until it has occurred this many times in `ignoreWindow` minutes. */ ignoreCount: number; /** * Ignore the issue until it has occurred `ignoreCount` times in this many minutes. (Max: 1 week) */ ignoreWindow: number; /** * Ignore the issue until it has affected this many users in `ignoreUserWindow` minutes. */ ignoreUserCount: number; /** * Ignore the issue until it has affected `ignoreUserCount` users in this many minutes. (Max: 1 week) */ ignoreUserWindow: number; }; /** * The new substatus of the issue. * * * `archived_until_escalating` * * `archived_until_condition_met` * * `archived_forever` * * `escalating` * * `ongoing` * * `regressed` * * `new` */ substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; /** * If true, marks the issue as seen by the requestor. */ hasSeen: boolean; /** * If true, bookmarks the issue for the requestor. */ isBookmarked: boolean; /** * If true, publishes the issue. */ isPublic: boolean; /** * If true, subscribes the requestor to the issue. */ isSubscribed: boolean; /** * If true, merges the issues together. */ merge: boolean; /** * If true, discards the issues instead of updating them. */ discard: boolean; /** * The user or team that should be assigned to the issues. Values take the form of ``, `user:`, ``, ``, or `team:`. */ assignedTo: string; /** * The priority that should be set for the issues * * * `low` * * `medium` * * `high` */ priority: 'low' | 'medium' | 'high'; }; export type InCommitValidator = { /** * The SHA of the resolving commit. */ commit: string; /** * The name of the repository (as it appears in Sentry). */ repository: string; }; export type InstallInfoResponse = { buildId: string; state: string; appInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; }; gitInfo: { headSha: string | null; baseSha: string | null; provider: string | null; headRepoName: string | null; baseRepoName: string | null; headRef: string | null; baseRef: string | null; prNumber: number | null; } | null; platform: string | null; projectId: string; projectSlug: string; buildConfiguration: string | null; isInstallable: boolean; installUrl: string | null; installUrlExpiresAt: string | null; downloadCount: number; releaseNotes: string | null; installGroups: Array | null; isCodeSignatureValid: boolean | null; profileName: string | null; codesigningType: string | null; }; export type IntegrationIssueConfigResponse = { id: string; name: string; icon: string | null; domainName: string | null; accountType: string | null; scopes: Array | null; outOfDate: boolean | null; status: string; provider: { key: string; slug: string; name: string; canAdd: boolean; canDisable: boolean; features: Array; aspects: { [key: string]: unknown; }; }; linkIssueConfig?: Array<{ [key: string]: unknown; }>; createIssueConfig?: Array<{ [key: string]: unknown; }>; }; export type IssueEventDetailsResponse = { id: string; groupID: string | null; eventID: string; projectID: string; message: string | null; title: string; location: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string; dateReceived: string | null; contexts: { [key: string]: unknown; } | null; size: number | null; entries: Array; dist: string | null; sdk: { name: string | null; version: string | null; } | null; context: { [key: string]: unknown; } | null; packages: { [key: string]: unknown; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; metadata: { [key: string]: unknown; }; errors: Array<{ type: string; message: string; data: { [key: string]: unknown; }; }>; occurrence: { id: string; projectId: number; eventId: string; fingerprint: Array; issueTitle: string; subtitle: string; resourceId: string | null; evidenceData: { [key: string]: unknown; }; evidenceDisplay: Array<{ name: string; value: string; important: boolean; }>; type: number; detectionTime: number; level: string | null; culprit: string | null; assignee: string | null; priority: number | null; } | null; _meta: { [key: string]: unknown; }; crashFile?: string | null; culprit?: string | null; dateCreated?: string; fingerprints?: Array; groupingConfig?: { id: string; enhancements: string; }; startTimestamp?: number; endTimestamp?: number; measurements?: { [key: string]: { value: number; unit: string | null; }; } | null; breakdowns?: { [key: string]: { [key: string]: { value: number; unit: string | null; }; }; } | null; release: { id?: number; commitCount?: number; data?: { [key: string]: unknown; }; dateCreated?: string; dateReleased?: string | null; deployCount?: number; ref?: string | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; status?: string; url?: string | null; userAgent?: string | null; version?: string | null; versionInfo?: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; } | null; userReport: { id: string; eventID: string; name: string | null; email: string | null; comments: string; dateCreated: string; user: { id: string; username: string | null; email: string | null; name: string | null; ipAddress: string | null; avatarUrl: string | null; } | null; event: { id: string; eventID: string; }; } | null; sdkUpdates: Array<{ [key: string]: unknown; }>; resolvedWith: Array; nextEventID: string | null; previousEventID: string | null; /** * The ``formatted`` field the mixin adds to a response when ``?llmFormat`` is requested. */ formatted?: { format: 'markdown' | 'xml'; content: string; }; }; export type LatestBaseSnapshotResponse = { head_artifact_id?: string; project_id?: string; project_slug?: string; app_id?: string | null; image_count?: number; images?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; image_url?: string; }>; diff_threshold?: number | null; date_added?: string; vcs_info?: { head_sha?: string | null; base_sha?: string | null; head_ref?: string | null; base_ref?: string | null; head_repo_name?: string | null; pr_number?: number | null; }; }; export type LatestInstallableBuildResponse = { latestArtifact: { buildId: string; state: string; appInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; }; gitInfo: { headSha: string | null; baseSha: string | null; provider: string | null; headRepoName: string | null; baseRepoName: string | null; headRef: string | null; baseRef: string | null; prNumber: number | null; } | null; platform: string | null; projectId: string; projectSlug: string; buildConfiguration: string | null; isInstallable: boolean; installUrl: string | null; installUrlExpiresAt: string | null; downloadCount: number; releaseNotes: string | null; installGroups: Array | null; isCodeSignatureValid: boolean | null; profileName: string | null; codesigningType: string | null; } | null; currentArtifact: { buildId: string; state: string; appInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; }; gitInfo: { headSha: string | null; baseSha: string | null; provider: string | null; headRepoName: string | null; baseRepoName: string | null; headRef: string | null; baseRef: string | null; prNumber: number | null; } | null; platform: string | null; projectId: string; projectSlug: string; buildConfiguration: string | null; isInstallable: boolean; installUrl: string | null; installUrlExpiresAt: string | null; downloadCount: number; releaseNotes: string | null; installGroups: Array | null; isCodeSignatureValid: boolean | null; profileName: string | null; codesigningType: string | null; } | null; }; /** * Layout settings for the source. This is required for HTTP, GCS, and S3 sources. * * **`type`** ***(string)*** - The layout of the folder structure. The options are: * - `native` - Platform-Specific (SymStore / GDB / LLVM) * - `symstore` - Microsoft SymStore * - `symstore_index2` - Microsoft SymStore (with index2.txt) * - `ssqp` - Microsoft SSQP * - `unified` - Unified Symbol Server Layout * - `debuginfod` - debuginfod * * **`casing`** ***(string)*** - The layout of the folder structure. The options are: * - `default` - Default (mixed case) * - `uppercase` - Uppercase * - `lowercase` - Lowercase * * ```json * { * "layout": { * "type": "native" * "casing": "default" * } * } * ``` */ export type Layout = { /** * The source's layout type. * * * `native` * * `symstore` * * `symstore_index2` * * `ssqp` * * `unified` * * `debuginfod` * * `slashsymbols` */ type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; /** * The source's casing rules. * * * `lowercase` * * `uppercase` * * `default` */ casing: 'lowercase' | 'uppercase' | 'default'; }; export type LinkExternalIssueRequest = { /** * The identifier of the existing external issue to link, as understood by the provider (such as a Jira issue key). */ externalIssue: string; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type LinkedDashboard = { field: string; dashboard_id: string; }; export type ListClientKeysResponse = Array<{ id: string; name: string; label: string; public: string | null; secret: string | null; projectId: number; isActive: boolean; rateLimit: { window: number; count: number; } | null; dsn: { secret: string; public: string; csp: string; security: string; minidump: string; nel: string; unreal: string; crons: string; cdn: string; playstation: string; integration: string; otlp_traces: string; otlp_logs: string; }; browserSdkVersion: string; browserSdk: { choices: Array>; }; dateCreated: string | null; dynamicSdkLoaderOptions: { hasReplay: boolean; hasPerformance: boolean; hasDebug: boolean; hasFeedback: boolean; hasLogsAndMetrics: boolean; }; useCase?: string; }>; export type ListDataForwarderResponse = Array<{ id: string; organizationId: string; isEnabled: boolean; enrollNewProjects: boolean; enrolledProjects: Array<{ id: string; slug: string; platform: string | null; }>; provider: string; config: { [key: string]: string; } | null; projectConfigs: Array<{ id: string; isEnabled: boolean; dataForwarderId: string; project: { id: string; slug: string; platform: string | null; }; overrides: { [key: string]: string; }; effectiveConfig: { [key: string]: string; }; dateAdded: string; dateUpdated: string; }>; dateAdded: string; dateUpdated: string; }>; export type ListDetectorSerializerResponse = Array<{ owner?: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; createdBy?: string | null; latestGroup?: { [key: string]: unknown; } | null; description?: string | null; id: string; projectId: string | null; name: string; type: string; workflowIds: Array | null; dateCreated: string; dateUpdated: string; dataSources: Array<{ [key: string]: unknown; }> | null; conditionGroup: { [key: string]: unknown; } | null; config: { [key: string]: unknown; }; enabled: boolean; }>; export type ListEventAttachmentsResponse = Array<{ id: string; event_id: string; type: string; name: string; mimetype: string | null; dateCreated: string; size: number; headers: { [key: string]: string | null; }; sha1: string | null; }>; export type ListMemberOnTeamResponse = Array<{ externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; role?: string; roleName?: string; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; teamRole: string | null; teamSlug: string; }>; export type ListOrgMembersResponse = Array<{ externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; }>; export type ListOrgTeamResponse = Array<{ id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; externalTeams?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; organization?: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; projects?: Array<{ stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }>; }>; export type ListOrganizationClientKeysResponse = Array<{ id: string; name: string; label: string; public: string | null; secret: string | null; projectId: number; isActive: boolean; rateLimit: { window: number; count: number; } | null; dsn: { secret: string; public: string; csp: string; security: string; minidump: string; nel: string; unreal: string; crons: string; cdn: string; playstation: string; integration: string; otlp_traces: string; otlp_logs: string; }; browserSdkVersion: string; browserSdk: { choices: Array>; }; dateCreated: string | null; dynamicSdkLoaderOptions: { hasReplay: boolean; hasPerformance: boolean; hasDebug: boolean; hasFeedback: boolean; hasLogsAndMetrics: boolean; }; useCase?: string; }>; export type ListOrganizationIntegrationResponse = Array<{ id: string; name: string; icon: string | null; domainName: string | null; accountType: string | null; scopes: Array | null; outOfDate: boolean | null; status: string; provider: unknown; configOrganization: unknown; configData: unknown; externalId: string; organizationId: number; organizationIntegrationStatus: string; gracePeriodEnd: string | null; }>; export type ListOrganizationMemberResponse = Array<{ externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; }>; export type ListOrganizationReleaseCommitsResponse = Array<{ id: string; message: string | null; dateCreated: string; pullRequest: { id: string; title: string | null; message: string | null; dateCreated: string; mergedAt: string | null; status: 'merged' | 'open' | 'closed' | 'draft' | 'unknown' | null; repository: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }; externalUrl: string; } | null; suspectCommitType: string; repository?: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; } | { [key: string]: unknown; }; releases: Array<{ version: string; shortVersion: string; ref: string | null; url: string | null; dateReleased: string | null; dateCreated: string; }>; }>; export type ListOrganizationReleasesResponse = Array<{ ref?: string | null; url?: string | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; owner?: { [key: string]: unknown; } | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; firstEvent?: string | null; lastEvent?: string | null; currentProjectMeta?: { [key: string]: unknown; } | null; userAgent?: string | null; adoptionStages?: { [key: string]: unknown; } | null; id: number; version: string; newGroups: number; status: string; shortVersion: string; versionInfo: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; data: { [key: string]: unknown; }; commitCount: number; deployCount: number; authors: Array<{ identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }>; projects: Array<{ healthData?: { durationP50?: number | null; durationP90?: number | null; crashFreeUsers?: number | null; crashFreeSessions?: number | null; totalUsers?: number | null; totalUsers24h?: number | null; totalProjectUsers24h?: number | null; totalSessions?: number | null; totalSessions24h?: number | null; totalProjectSessions24h?: number | null; adoption?: number | null; sessionsAdoption?: number | null; sessionsCrashed: number; sessionsErrored: number; hasHealthData: boolean; stats: { [key: string]: unknown; }; } | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; id: number; slug: string; name: string; platform: string | null; platforms: Array | null; hasHealthData: boolean; newGroups: number; }>; }>; export type ListOrganizationRepositoriesResponse = Array<{ url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }>; export type ListOrganizationTagsResponse = Array<{ uniqueValues?: number | null; totalValues?: number | null; topValues?: Array<{ query?: string | null; key: string; name: string; value: string | null; count: number | null; lastSeen: string | null; firstSeen: string | null; }> | null; key: string; name: string; }>; export type ListOrganizations = Array<{ features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }>; export type ListProjectDebugFilesResponse = Array<{ id: string; uuid: string; debugId: string; codeId: string | null; cpuName: string; objectName: string; symbolType: string; headers: { [key: string]: string; }; size: number; sha1: string; dateCreated: string; data: { [key: string]: unknown; }; }>; export type ListProjectEnvironments = Array<{ id: string; name: string; isHidden: boolean; }>; export type ListProjectReleaseCommitsResponse = Array<{ id: string; message: string | null; dateCreated: string; pullRequest: { id: string; title: string | null; message: string | null; dateCreated: string; mergedAt: string | null; status: 'merged' | 'open' | 'closed' | 'draft' | 'unknown' | null; repository: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }; externalUrl: string; } | null; suspectCommitType: string; repository?: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; } | { [key: string]: unknown; }; releases: Array<{ version: string; shortVersion: string; ref: string | null; url: string | null; dateReleased: string | null; dateCreated: string; }>; }>; export type ListProjectReleasesResponse = Array<{ ref?: string | null; url?: string | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; owner?: { [key: string]: unknown; } | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; firstEvent?: string | null; lastEvent?: string | null; currentProjectMeta?: { [key: string]: unknown; } | null; userAgent?: string | null; adoptionStages?: { [key: string]: unknown; } | null; id: number; version: string; newGroups: number; status: string; shortVersion: string; versionInfo: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; data: { [key: string]: unknown; }; commitCount: number; deployCount: number; authors: Array<{ identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }>; projects: Array<{ healthData?: { durationP50?: number | null; durationP90?: number | null; crashFreeUsers?: number | null; crashFreeSessions?: number | null; totalUsers?: number | null; totalUsers24h?: number | null; totalProjectUsers24h?: number | null; totalSessions?: number | null; totalSessions24h?: number | null; totalProjectSessions24h?: number | null; adoption?: number | null; sessionsAdoption?: number | null; sessionsCrashed: number; sessionsErrored: number; hasHealthData: boolean; stats: { [key: string]: unknown; }; } | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; id: number; slug: string; name: string; platform: string | null; platforms: Array | null; hasHealthData: boolean; newGroups: number; }>; }>; export type ListProjectUsersResponse = Array<{ id: string | null; tagValue: string; identifier: string; username: string; email: string; name: string; ipAddress: string; avatarUrl: string; hash: string; dateCreated: string | null; }>; export type ListReleaseFiles = Array<{ id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }>; export type ListReplayClicks = { data: Array<{ node_id: number; timestamp: string; }>; }; export type ListReplayDeletionJobs = { data: Array<{ id: number; dateCreated: string; dateUpdated: string; rangeStart: string; rangeEnd: string; environments: Array; status: string; query: string; countDeleted: number; }>; }; export type ListReplayRecordingSegments = Array>; export type ListReplays = { data: Array<{ id?: string; project_id?: string; trace_ids?: Array; error_ids?: Array; environment?: string | null; tags?: { [key: string]: Array; } | Array; user?: { id?: string | null; username?: string | null; email?: string | null; ip?: string | null; display_name?: string | null; geo?: { city?: string | null; country_code?: string | null; region?: string | null; subdivision?: string | null; }; }; sdk?: { name?: string | null; version?: string | null; }; os?: { name?: string | null; version?: string | null; }; browser?: { name?: string | null; version?: string | null; }; device?: { name?: string | null; brand?: string | null; model?: string | null; family?: string | null; }; ota_updates?: { channel?: string | null; runtime_version?: string | null; update_id?: string | null; }; is_archived?: boolean | null; urls?: Array | null; segment_names?: Array | null; clicks?: Array<{ [key: string]: unknown; }>; count_dead_clicks?: number | null; count_rage_clicks?: number | null; count_errors?: number | null; duration?: number | null; finished_at?: string | null; started_at?: string | null; activity?: number | null; count_urls?: number | null; replay_type?: string; count_segments?: number | null; platform?: string | null; releases?: Array; dist?: string | null; count_warnings?: number | null; count_infos?: number | null; has_viewed?: boolean; }>; }; export type ListSelectors = { data: Array<{ count_dead_clicks?: number; count_rage_clicks?: number; dom_element?: string; element?: { alt: string; aria_label: string; class: Array; component_name: string; id: string; role: string; tag: string; testid: string; title: string; }; project_id?: string; }>; }; export type ListTeamProjectResponse = Array<{ latestDeploys?: { [key: string]: { [key: string]: string; }; } | null; options?: { [key: string]: unknown; }; stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; team: { id: string; name: string; slug: string; } | null; teams: Array<{ id: string; name: string; slug: string; }>; platforms: Array; hasUserReports: boolean; environments: Array; latestRelease: { version: string; } | null; }>; export type ListTraceItemAttributesResponse = Array<{ key: string; name: string; secondaryAliases?: Array; attributeSource: { source_type: 'sentry' | 'user'; is_transformed_alias?: boolean; }; attributeType: 'string' | 'number' | 'boolean' | 'array'; }>; export type ListWorkflow = Array<{ id: string; name: string; organizationId: string; createdBy: string | null; dateCreated: string; dateUpdated: string; triggers: { id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; } | null; actionFilters: Array<{ id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; }> | null; environment: string | null; config: { [key: string]: unknown; }; detectorIds: Array | null; enabled: boolean; lastTriggered: string | null; owner: string | null; }>; export type Monitor = { alertRule?: { targets: Array<{ targetIdentifier: number; targetType: string; }>; environment: string; }; id: string; name: string; slug: string; status: string; isMuted: boolean; isUpserting: boolean; config: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; dateCreated: string; project: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }; environments: { name: string; status: string; isMuted: boolean; dateCreated: string; lastCheckIn: string; nextCheckIn: string; nextCheckInLatest: string; activeIncident: { startingTimestamp: string; resolvingTimestamp: string; brokenNotice: { userNotifiedTimestamp: string; environmentMutedTimestamp: string; } | null; } | null; }; owner: { type: 'user' | 'team'; id: string; name: string; email?: string; }; }; export type MonitorList = Array<{ alertRule?: { targets: Array<{ targetIdentifier: number; targetType: string; }>; environment: string; }; id: string; name: string; slug: string; status: string; isMuted: boolean; isUpserting: boolean; config: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; dateCreated: string; project: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }; environments: { name: string; status: string; isMuted: boolean; dateCreated: string; lastCheckIn: string; nextCheckIn: string; nextCheckInLatest: string; activeIncident: { startingTimestamp: string; resolvingTimestamp: string; brokenNotice: { userNotifiedTimestamp: string; environmentMutedTimestamp: string; } | null; } | null; }; owner: { type: 'user' | 'team'; id: string; name: string; email?: string; }; }>; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type MonitorValidator = { /** * The project ID or slug to associate the monitor to. */ project: string; /** * Name of the monitor. Used for notifications. If not set the slug will be derived from your monitor name. */ name: string; /** * The configuration for the monitor. */ config: { /** * Currently supports "crontab" or "interval" * * * `crontab` * * `interval` */ schedule_type?: 'crontab' | 'interval'; /** * Varies depending on the schedule_type. Is either a crontab string, or a 2 element tuple for intervals (e.g. [1, 'day']) */ schedule: unknown; /** * How long (in minutes) after the expected checkin time will we wait until we consider the checkin to have been missed. */ checkin_margin?: number | null; /** * How long (in minutes) is the checkin allowed to run for in CheckInStatus.IN_PROGRESS before it is considered failed. */ max_runtime?: number | null; /** * tz database style timezone string * * * `Africa/Abidjan` * * `Africa/Accra` * * `Africa/Addis_Ababa` * * `Africa/Algiers` * * `Africa/Asmara` * * `Africa/Asmera` * * `Africa/Bamako` * * `Africa/Bangui` * * `Africa/Banjul` * * `Africa/Bissau` * * `Africa/Blantyre` * * `Africa/Brazzaville` * * `Africa/Bujumbura` * * `Africa/Cairo` * * `Africa/Casablanca` * * `Africa/Ceuta` * * `Africa/Conakry` * * `Africa/Dakar` * * `Africa/Dar_es_Salaam` * * `Africa/Djibouti` * * `Africa/Douala` * * `Africa/El_Aaiun` * * `Africa/Freetown` * * `Africa/Gaborone` * * `Africa/Harare` * * `Africa/Johannesburg` * * `Africa/Juba` * * `Africa/Kampala` * * `Africa/Khartoum` * * `Africa/Kigali` * * `Africa/Kinshasa` * * `Africa/Lagos` * * `Africa/Libreville` * * `Africa/Lome` * * `Africa/Luanda` * * `Africa/Lubumbashi` * * `Africa/Lusaka` * * `Africa/Malabo` * * `Africa/Maputo` * * `Africa/Maseru` * * `Africa/Mbabane` * * `Africa/Mogadishu` * * `Africa/Monrovia` * * `Africa/Nairobi` * * `Africa/Ndjamena` * * `Africa/Niamey` * * `Africa/Nouakchott` * * `Africa/Ouagadougou` * * `Africa/Porto-Novo` * * `Africa/Sao_Tome` * * `Africa/Timbuktu` * * `Africa/Tripoli` * * `Africa/Tunis` * * `Africa/Windhoek` * * `America/Adak` * * `America/Anchorage` * * `America/Anguilla` * * `America/Antigua` * * `America/Araguaina` * * `America/Argentina/Buenos_Aires` * * `America/Argentina/Catamarca` * * `America/Argentina/ComodRivadavia` * * `America/Argentina/Cordoba` * * `America/Argentina/Jujuy` * * `America/Argentina/La_Rioja` * * `America/Argentina/Mendoza` * * `America/Argentina/Rio_Gallegos` * * `America/Argentina/Salta` * * `America/Argentina/San_Juan` * * `America/Argentina/San_Luis` * * `America/Argentina/Tucuman` * * `America/Argentina/Ushuaia` * * `America/Aruba` * * `America/Asuncion` * * `America/Atikokan` * * `America/Atka` * * `America/Bahia` * * `America/Bahia_Banderas` * * `America/Barbados` * * `America/Belem` * * `America/Belize` * * `America/Blanc-Sablon` * * `America/Boa_Vista` * * `America/Bogota` * * `America/Boise` * * `America/Buenos_Aires` * * `America/Cambridge_Bay` * * `America/Campo_Grande` * * `America/Cancun` * * `America/Caracas` * * `America/Catamarca` * * `America/Cayenne` * * `America/Cayman` * * `America/Chicago` * * `America/Chihuahua` * * `America/Ciudad_Juarez` * * `America/Coral_Harbour` * * `America/Cordoba` * * `America/Costa_Rica` * * `America/Coyhaique` * * `America/Creston` * * `America/Cuiaba` * * `America/Curacao` * * `America/Danmarkshavn` * * `America/Dawson` * * `America/Dawson_Creek` * * `America/Denver` * * `America/Detroit` * * `America/Dominica` * * `America/Edmonton` * * `America/Eirunepe` * * `America/El_Salvador` * * `America/Ensenada` * * `America/Fort_Nelson` * * `America/Fort_Wayne` * * `America/Fortaleza` * * `America/Glace_Bay` * * `America/Godthab` * * `America/Goose_Bay` * * `America/Grand_Turk` * * `America/Grenada` * * `America/Guadeloupe` * * `America/Guatemala` * * `America/Guayaquil` * * `America/Guyana` * * `America/Halifax` * * `America/Havana` * * `America/Hermosillo` * * `America/Indiana/Indianapolis` * * `America/Indiana/Knox` * * `America/Indiana/Marengo` * * `America/Indiana/Petersburg` * * `America/Indiana/Tell_City` * * `America/Indiana/Vevay` * * `America/Indiana/Vincennes` * * `America/Indiana/Winamac` * * `America/Indianapolis` * * `America/Inuvik` * * `America/Iqaluit` * * `America/Jamaica` * * `America/Jujuy` * * `America/Juneau` * * `America/Kentucky/Louisville` * * `America/Kentucky/Monticello` * * `America/Knox_IN` * * `America/Kralendijk` * * `America/La_Paz` * * `America/Lima` * * `America/Los_Angeles` * * `America/Louisville` * * `America/Lower_Princes` * * `America/Maceio` * * `America/Managua` * * `America/Manaus` * * `America/Marigot` * * `America/Martinique` * * `America/Matamoros` * * `America/Mazatlan` * * `America/Mendoza` * * `America/Menominee` * * `America/Merida` * * `America/Metlakatla` * * `America/Mexico_City` * * `America/Miquelon` * * `America/Moncton` * * `America/Monterrey` * * `America/Montevideo` * * `America/Montreal` * * `America/Montserrat` * * `America/Nassau` * * `America/New_York` * * `America/Nipigon` * * `America/Nome` * * `America/Noronha` * * `America/North_Dakota/Beulah` * * `America/North_Dakota/Center` * * `America/North_Dakota/New_Salem` * * `America/Nuuk` * * `America/Ojinaga` * * `America/Panama` * * `America/Pangnirtung` * * `America/Paramaribo` * * `America/Phoenix` * * `America/Port-au-Prince` * * `America/Port_of_Spain` * * `America/Porto_Acre` * * `America/Porto_Velho` * * `America/Puerto_Rico` * * `America/Punta_Arenas` * * `America/Rainy_River` * * `America/Rankin_Inlet` * * `America/Recife` * * `America/Regina` * * `America/Resolute` * * `America/Rio_Branco` * * `America/Rosario` * * `America/Santa_Isabel` * * `America/Santarem` * * `America/Santiago` * * `America/Santo_Domingo` * * `America/Sao_Paulo` * * `America/Scoresbysund` * * `America/Shiprock` * * `America/Sitka` * * `America/St_Barthelemy` * * `America/St_Johns` * * `America/St_Kitts` * * `America/St_Lucia` * * `America/St_Thomas` * * `America/St_Vincent` * * `America/Swift_Current` * * `America/Tegucigalpa` * * `America/Thule` * * `America/Thunder_Bay` * * `America/Tijuana` * * `America/Toronto` * * `America/Tortola` * * `America/Vancouver` * * `America/Virgin` * * `America/Whitehorse` * * `America/Winnipeg` * * `America/Yakutat` * * `America/Yellowknife` * * `Antarctica/Casey` * * `Antarctica/Davis` * * `Antarctica/DumontDUrville` * * `Antarctica/Macquarie` * * `Antarctica/Mawson` * * `Antarctica/McMurdo` * * `Antarctica/Palmer` * * `Antarctica/Rothera` * * `Antarctica/South_Pole` * * `Antarctica/Syowa` * * `Antarctica/Troll` * * `Antarctica/Vostok` * * `Arctic/Longyearbyen` * * `Asia/Aden` * * `Asia/Almaty` * * `Asia/Amman` * * `Asia/Anadyr` * * `Asia/Aqtau` * * `Asia/Aqtobe` * * `Asia/Ashgabat` * * `Asia/Ashkhabad` * * `Asia/Atyrau` * * `Asia/Baghdad` * * `Asia/Bahrain` * * `Asia/Baku` * * `Asia/Bangkok` * * `Asia/Barnaul` * * `Asia/Beirut` * * `Asia/Bishkek` * * `Asia/Brunei` * * `Asia/Calcutta` * * `Asia/Chita` * * `Asia/Choibalsan` * * `Asia/Chongqing` * * `Asia/Chungking` * * `Asia/Colombo` * * `Asia/Dacca` * * `Asia/Damascus` * * `Asia/Dhaka` * * `Asia/Dili` * * `Asia/Dubai` * * `Asia/Dushanbe` * * `Asia/Famagusta` * * `Asia/Gaza` * * `Asia/Harbin` * * `Asia/Hebron` * * `Asia/Ho_Chi_Minh` * * `Asia/Hong_Kong` * * `Asia/Hovd` * * `Asia/Irkutsk` * * `Asia/Istanbul` * * `Asia/Jakarta` * * `Asia/Jayapura` * * `Asia/Jerusalem` * * `Asia/Kabul` * * `Asia/Kamchatka` * * `Asia/Karachi` * * `Asia/Kashgar` * * `Asia/Kathmandu` * * `Asia/Katmandu` * * `Asia/Khandyga` * * `Asia/Kolkata` * * `Asia/Krasnoyarsk` * * `Asia/Kuala_Lumpur` * * `Asia/Kuching` * * `Asia/Kuwait` * * `Asia/Macao` * * `Asia/Macau` * * `Asia/Magadan` * * `Asia/Makassar` * * `Asia/Manila` * * `Asia/Muscat` * * `Asia/Nicosia` * * `Asia/Novokuznetsk` * * `Asia/Novosibirsk` * * `Asia/Omsk` * * `Asia/Oral` * * `Asia/Phnom_Penh` * * `Asia/Pontianak` * * `Asia/Pyongyang` * * `Asia/Qatar` * * `Asia/Qostanay` * * `Asia/Qyzylorda` * * `Asia/Rangoon` * * `Asia/Riyadh` * * `Asia/Saigon` * * `Asia/Sakhalin` * * `Asia/Samarkand` * * `Asia/Seoul` * * `Asia/Shanghai` * * `Asia/Singapore` * * `Asia/Srednekolymsk` * * `Asia/Taipei` * * `Asia/Tashkent` * * `Asia/Tbilisi` * * `Asia/Tehran` * * `Asia/Tel_Aviv` * * `Asia/Thimbu` * * `Asia/Thimphu` * * `Asia/Tokyo` * * `Asia/Tomsk` * * `Asia/Ujung_Pandang` * * `Asia/Ulaanbaatar` * * `Asia/Ulan_Bator` * * `Asia/Urumqi` * * `Asia/Ust-Nera` * * `Asia/Vientiane` * * `Asia/Vladivostok` * * `Asia/Yakutsk` * * `Asia/Yangon` * * `Asia/Yekaterinburg` * * `Asia/Yerevan` * * `Atlantic/Azores` * * `Atlantic/Bermuda` * * `Atlantic/Canary` * * `Atlantic/Cape_Verde` * * `Atlantic/Faeroe` * * `Atlantic/Faroe` * * `Atlantic/Jan_Mayen` * * `Atlantic/Madeira` * * `Atlantic/Reykjavik` * * `Atlantic/South_Georgia` * * `Atlantic/St_Helena` * * `Atlantic/Stanley` * * `Australia/ACT` * * `Australia/Adelaide` * * `Australia/Brisbane` * * `Australia/Broken_Hill` * * `Australia/Canberra` * * `Australia/Currie` * * `Australia/Darwin` * * `Australia/Eucla` * * `Australia/Hobart` * * `Australia/LHI` * * `Australia/Lindeman` * * `Australia/Lord_Howe` * * `Australia/Melbourne` * * `Australia/NSW` * * `Australia/North` * * `Australia/Perth` * * `Australia/Queensland` * * `Australia/South` * * `Australia/Sydney` * * `Australia/Tasmania` * * `Australia/Victoria` * * `Australia/West` * * `Australia/Yancowinna` * * `Brazil/Acre` * * `Brazil/DeNoronha` * * `Brazil/East` * * `Brazil/West` * * `CET` * * `CST6CDT` * * `Canada/Atlantic` * * `Canada/Central` * * `Canada/Eastern` * * `Canada/Mountain` * * `Canada/Newfoundland` * * `Canada/Pacific` * * `Canada/Saskatchewan` * * `Canada/Yukon` * * `Chile/Continental` * * `Chile/EasterIsland` * * `Cuba` * * `EET` * * `EST` * * `EST5EDT` * * `Egypt` * * `Eire` * * `Etc/GMT` * * `Etc/GMT+0` * * `Etc/GMT+1` * * `Etc/GMT+10` * * `Etc/GMT+11` * * `Etc/GMT+12` * * `Etc/GMT+2` * * `Etc/GMT+3` * * `Etc/GMT+4` * * `Etc/GMT+5` * * `Etc/GMT+6` * * `Etc/GMT+7` * * `Etc/GMT+8` * * `Etc/GMT+9` * * `Etc/GMT-0` * * `Etc/GMT-1` * * `Etc/GMT-10` * * `Etc/GMT-11` * * `Etc/GMT-12` * * `Etc/GMT-13` * * `Etc/GMT-14` * * `Etc/GMT-2` * * `Etc/GMT-3` * * `Etc/GMT-4` * * `Etc/GMT-5` * * `Etc/GMT-6` * * `Etc/GMT-7` * * `Etc/GMT-8` * * `Etc/GMT-9` * * `Etc/GMT0` * * `Etc/Greenwich` * * `Etc/UCT` * * `Etc/UTC` * * `Etc/Universal` * * `Etc/Zulu` * * `Europe/Amsterdam` * * `Europe/Andorra` * * `Europe/Astrakhan` * * `Europe/Athens` * * `Europe/Belfast` * * `Europe/Belgrade` * * `Europe/Berlin` * * `Europe/Bratislava` * * `Europe/Brussels` * * `Europe/Bucharest` * * `Europe/Budapest` * * `Europe/Busingen` * * `Europe/Chisinau` * * `Europe/Copenhagen` * * `Europe/Dublin` * * `Europe/Gibraltar` * * `Europe/Guernsey` * * `Europe/Helsinki` * * `Europe/Isle_of_Man` * * `Europe/Istanbul` * * `Europe/Jersey` * * `Europe/Kaliningrad` * * `Europe/Kiev` * * `Europe/Kirov` * * `Europe/Kyiv` * * `Europe/Lisbon` * * `Europe/Ljubljana` * * `Europe/London` * * `Europe/Luxembourg` * * `Europe/Madrid` * * `Europe/Malta` * * `Europe/Mariehamn` * * `Europe/Minsk` * * `Europe/Monaco` * * `Europe/Moscow` * * `Europe/Nicosia` * * `Europe/Oslo` * * `Europe/Paris` * * `Europe/Podgorica` * * `Europe/Prague` * * `Europe/Riga` * * `Europe/Rome` * * `Europe/Samara` * * `Europe/San_Marino` * * `Europe/Sarajevo` * * `Europe/Saratov` * * `Europe/Simferopol` * * `Europe/Skopje` * * `Europe/Sofia` * * `Europe/Stockholm` * * `Europe/Tallinn` * * `Europe/Tirane` * * `Europe/Tiraspol` * * `Europe/Ulyanovsk` * * `Europe/Uzhgorod` * * `Europe/Vaduz` * * `Europe/Vatican` * * `Europe/Vienna` * * `Europe/Vilnius` * * `Europe/Volgograd` * * `Europe/Warsaw` * * `Europe/Zagreb` * * `Europe/Zaporozhye` * * `Europe/Zurich` * * `GB` * * `GB-Eire` * * `GMT` * * `GMT+0` * * `GMT-0` * * `GMT0` * * `Greenwich` * * `HST` * * `Hongkong` * * `Iceland` * * `Indian/Antananarivo` * * `Indian/Chagos` * * `Indian/Christmas` * * `Indian/Cocos` * * `Indian/Comoro` * * `Indian/Kerguelen` * * `Indian/Mahe` * * `Indian/Maldives` * * `Indian/Mauritius` * * `Indian/Mayotte` * * `Indian/Reunion` * * `Iran` * * `Israel` * * `Jamaica` * * `Japan` * * `Kwajalein` * * `Libya` * * `MET` * * `MST` * * `MST7MDT` * * `Mexico/BajaNorte` * * `Mexico/BajaSur` * * `Mexico/General` * * `NZ` * * `NZ-CHAT` * * `Navajo` * * `PRC` * * `PST8PDT` * * `Pacific/Apia` * * `Pacific/Auckland` * * `Pacific/Bougainville` * * `Pacific/Chatham` * * `Pacific/Chuuk` * * `Pacific/Easter` * * `Pacific/Efate` * * `Pacific/Enderbury` * * `Pacific/Fakaofo` * * `Pacific/Fiji` * * `Pacific/Funafuti` * * `Pacific/Galapagos` * * `Pacific/Gambier` * * `Pacific/Guadalcanal` * * `Pacific/Guam` * * `Pacific/Honolulu` * * `Pacific/Johnston` * * `Pacific/Kanton` * * `Pacific/Kiritimati` * * `Pacific/Kosrae` * * `Pacific/Kwajalein` * * `Pacific/Majuro` * * `Pacific/Marquesas` * * `Pacific/Midway` * * `Pacific/Nauru` * * `Pacific/Niue` * * `Pacific/Norfolk` * * `Pacific/Noumea` * * `Pacific/Pago_Pago` * * `Pacific/Palau` * * `Pacific/Pitcairn` * * `Pacific/Pohnpei` * * `Pacific/Ponape` * * `Pacific/Port_Moresby` * * `Pacific/Rarotonga` * * `Pacific/Saipan` * * `Pacific/Samoa` * * `Pacific/Tahiti` * * `Pacific/Tarawa` * * `Pacific/Tongatapu` * * `Pacific/Truk` * * `Pacific/Wake` * * `Pacific/Wallis` * * `Pacific/Yap` * * `Poland` * * `Portugal` * * `ROC` * * `ROK` * * `Singapore` * * `Turkey` * * `UCT` * * `US/Alaska` * * `US/Aleutian` * * `US/Arizona` * * `US/Central` * * `US/East-Indiana` * * `US/Eastern` * * `US/Hawaii` * * `US/Indiana-Starke` * * `US/Michigan` * * `US/Mountain` * * `US/Pacific` * * `US/Samoa` * * `UTC` * * `Universal` * * `W-SU` * * `WET` * * `Zulu` * * `localtime` */ timezone?: 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Asmera' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Timbuktu' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/ComodRivadavia' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Atka' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Buenos_Aires' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Catamarca' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Coral_Harbour' | 'America/Cordoba' | 'America/Costa_Rica' | 'America/Coyhaique' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Ensenada' | 'America/Fort_Nelson' | 'America/Fort_Wayne' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Godthab' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Indianapolis' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Jujuy' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Knox_IN' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Louisville' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Mendoza' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montreal' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nipigon' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Pangnirtung' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Acre' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rainy_River' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Rosario' | 'America/Santa_Isabel' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Shiprock' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Thunder_Bay' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Virgin' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'America/Yellowknife' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/South_Pole' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Ashkhabad' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Calcutta' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Chongqing' | 'Asia/Chungking' | 'Asia/Colombo' | 'Asia/Dacca' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Harbin' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Istanbul' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kashgar' | 'Asia/Kathmandu' | 'Asia/Katmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macao' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Rangoon' | 'Asia/Riyadh' | 'Asia/Saigon' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Tel_Aviv' | 'Asia/Thimbu' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ujung_Pandang' | 'Asia/Ulaanbaatar' | 'Asia/Ulan_Bator' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faeroe' | 'Atlantic/Faroe' | 'Atlantic/Jan_Mayen' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/ACT' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Canberra' | 'Australia/Currie' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/LHI' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/NSW' | 'Australia/North' | 'Australia/Perth' | 'Australia/Queensland' | 'Australia/South' | 'Australia/Sydney' | 'Australia/Tasmania' | 'Australia/Victoria' | 'Australia/West' | 'Australia/Yancowinna' | 'Brazil/Acre' | 'Brazil/DeNoronha' | 'Brazil/East' | 'Brazil/West' | 'CET' | 'CST6CDT' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Canada/Saskatchewan' | 'Canada/Yukon' | 'Chile/Continental' | 'Chile/EasterIsland' | 'Cuba' | 'EET' | 'EST' | 'EST5EDT' | 'Egypt' | 'Eire' | 'Etc/GMT' | 'Etc/GMT+0' | 'Etc/GMT+1' | 'Etc/GMT+10' | 'Etc/GMT+11' | 'Etc/GMT+12' | 'Etc/GMT+2' | 'Etc/GMT+3' | 'Etc/GMT+4' | 'Etc/GMT+5' | 'Etc/GMT+6' | 'Etc/GMT+7' | 'Etc/GMT+8' | 'Etc/GMT+9' | 'Etc/GMT-0' | 'Etc/GMT-1' | 'Etc/GMT-10' | 'Etc/GMT-11' | 'Etc/GMT-12' | 'Etc/GMT-13' | 'Etc/GMT-14' | 'Etc/GMT-2' | 'Etc/GMT-3' | 'Etc/GMT-4' | 'Etc/GMT-5' | 'Etc/GMT-6' | 'Etc/GMT-7' | 'Etc/GMT-8' | 'Etc/GMT-9' | 'Etc/GMT0' | 'Etc/Greenwich' | 'Etc/UCT' | 'Etc/UTC' | 'Etc/Universal' | 'Etc/Zulu' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belfast' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kiev' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Nicosia' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Tiraspol' | 'Europe/Ulyanovsk' | 'Europe/Uzhgorod' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zaporozhye' | 'Europe/Zurich' | 'GB' | 'GB-Eire' | 'GMT' | 'GMT+0' | 'GMT-0' | 'GMT0' | 'Greenwich' | 'HST' | 'Hongkong' | 'Iceland' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Iran' | 'Israel' | 'Jamaica' | 'Japan' | 'Kwajalein' | 'Libya' | 'MET' | 'MST' | 'MST7MDT' | 'Mexico/BajaNorte' | 'Mexico/BajaSur' | 'Mexico/General' | 'NZ' | 'NZ-CHAT' | 'Navajo' | 'PRC' | 'PST8PDT' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Enderbury' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Johnston' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Ponape' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Samoa' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Truk' | 'Pacific/Wake' | 'Pacific/Wallis' | 'Pacific/Yap' | 'Poland' | 'Portugal' | 'ROC' | 'ROK' | 'Singapore' | 'Turkey' | 'UCT' | 'US/Alaska' | 'US/Aleutian' | 'US/Arizona' | 'US/Central' | 'US/East-Indiana' | 'US/Eastern' | 'US/Hawaii' | 'US/Indiana-Starke' | 'US/Michigan' | 'US/Mountain' | 'US/Pacific' | 'US/Samoa' | 'UTC' | 'Universal' | 'W-SU' | 'WET' | 'Zulu' | 'localtime' | ''; /** * How many consecutive missed or failed check-ins in a row before creating a new issue. */ failure_issue_threshold?: number | null; /** * How many successful check-ins in a row before resolving an issue. */ recovery_threshold?: number | null; }; /** * Uniquely identifies your monitor within your organization. Changing this slug will require updates to any instrumented check-in calls. */ slug?: string; /** * Status of the monitor. Disabled monitors will not accept events and will not count towards the monitor quota. * * * `active` * * `disabled` */ status?: 'active' | 'disabled'; /** * The ID of the team or user that owns the monitor. (eg. user:51 or team:6) */ owner?: string | null; /** * Disable creation of monitor incidents */ is_muted?: boolean; }; /** * Django Rest Framework serializer for incoming NotificationAction API payloads */ export type NotificationAction = { /** * Type of the trigger that causes the notification. The only supported trigger right now is: `spike-protection`. */ trigger_type: string; /** * Service that is used for sending the notification. * - `email` * - `slack` * - `sentry_notification` * - `pagerduty` * - `opsgenie` * */ service_type: string; /** * ID of the integration used as the notification service. See * [List Integrations](https://docs.sentry.io/api/integrations/list-an-organizations-available-integrations/) * to retrieve a full list of integrations. * * Required if **service_type** is `slack`, `pagerduty` or `opsgenie`. * */ integration_id?: number; /** * ID of the notification target, like a Slack channel ID. * * Required if **service_type** is `slack` or `opsgenie`. * */ target_identifier?: string; /** * Name of the notification target, like a Slack channel name. * * Required if **service_type** is `slack` or `opsgenie`. * */ target_display?: string; /** * List of project IDs or slugs that the Notification Action is created for. */ projects?: Array; }; export type OrgReleaseResponse = { ref?: string | null; url?: string | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; owner?: { [key: string]: unknown; } | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; firstEvent?: string | null; lastEvent?: string | null; currentProjectMeta?: { [key: string]: unknown; } | null; userAgent?: string | null; adoptionStages?: { [key: string]: unknown; } | null; id: number; version: string; newGroups: number; status: string; shortVersion: string; versionInfo: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; data: { [key: string]: unknown; }; commitCount: number; deployCount: number; authors: Array<{ identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }>; projects: Array<{ healthData?: { durationP50?: number | null; durationP90?: number | null; crashFreeUsers?: number | null; crashFreeSessions?: number | null; totalUsers?: number | null; totalUsers24h?: number | null; totalProjectUsers24h?: number | null; totalSessions?: number | null; totalSessions24h?: number | null; totalProjectSessions24h?: number | null; adoption?: number | null; sessionsAdoption?: number | null; sessionsCrashed: number; sessionsErrored: number; hasHealthData: boolean; stats: { [key: string]: unknown; }; } | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; id: number; slug: string; name: string; platform: string | null; platforms: Array | null; hasHealthData: boolean; newGroups: number; }>; }; export type OrganizationConfigIntegrationsEndpointResponse = { providers: Array<{ key: string; slug: string; name: string; metadata: unknown; canAdd: boolean; canDisable: boolean; features: Array; }>; }; export type OrganizationDetailsPut = { /** * The new slug for the organization, which needs to be unique. */ slug?: string; /** * The new name for the organization. */ name?: string; /** * Specify `true` to opt-in to new features before they're released to the public. */ isEarlyAdopter?: boolean; /** * Specify `true` to hide AI features from the organization. */ hideAiFeatures?: boolean; /** * The default role new members will receive. * * * `member` - Member * * `admin` - Admin * * `manager` - Manager * * `owner` - Owner */ defaultRole?: 'member' | 'admin' | 'manager' | 'owner'; /** * Specify `true` to allow organization members to freely join any team. */ openMembership?: boolean; /** * Specify `true` to allow members to delete events (including the delete & discard action) by granting them the `event:admin` scope. */ eventsMemberAdmin?: boolean; /** * Specify `true` to allow members to create, edit, and delete alert rules by granting them the `alerts:write` scope. */ alertsMemberWrite?: boolean; /** * The role required to download event attachments, such as native crash reports or log files. * * * `member` - Member * * `admin` - Admin * * `manager` - Manager * * `owner` - Owner */ attachmentsRole?: 'member' | 'admin' | 'manager' | 'owner'; /** * The role required to download debug information files, ProGuard mappings and source maps. * * * `member` - Member * * `admin` - Admin * * `manager` - Manager * * `owner` - Owner */ debugFilesRole?: 'member' | 'admin' | 'manager' | 'owner'; /** * Specify `true` to enable granular replay permissions, allowing per-member access control for replay data. */ hasGranularReplayPermissions?: boolean; /** * A list of user IDs who have permission to access replay data. Requires the hasGranularReplayPermissions flag to be true to be enforced. */ replayAccessMembers?: Array | null; /** * The type of display picture for the organization. * * * `letter_avatar` - Use initials * * `upload` - Upload an image */ avatarType?: 'letter_avatar' | 'upload'; /** * The image to upload as the organization avatar, in base64. Required if `avatarType` is `upload`. */ avatar?: string; /** * Specify `true` to require and enforce two-factor authentication for all members. */ require2FA?: boolean; /** * Specify `true` to allow sharing of limited details on issues to anonymous users. */ allowSharedIssues?: boolean; /** * Specify `true` to enable enhanced privacy controls to limit personally identifiable information (PII) as well as source code in things like notifications. */ enhancedPrivacy?: boolean; /** * Specify `true` to allow Sentry to scrape missing JavaScript source context when possible. */ scrapeJavaScript?: boolean; /** * How many native crash reports (such as Minidumps for improved processing and download in issue details) to store per issue. * * * `0` - Disabled * * `1` - 1 per issue * * `5` - 5 per issue * * `10` - 10 per issue * * `20` - 20 per issue * * `50` - 50 per issue * * `100` - 100 per issue * * `-1` - Unlimited */ storeCrashReports?: 0 | 1 | 5 | 10 | 20 | 50 | 100 | -1; /** * Specify `true` to allow users to request to join your organization. */ allowJoinRequests?: boolean; /** * Specify `true` to require server-side data scrubbing for all projects. */ dataScrubber?: boolean; /** * Specify `true` to apply the default scrubbers to prevent things like passwords and credit cards from being stored for all projects. */ dataScrubberDefaults?: boolean; /** * A list of additional global field names to match against when scrubbing data for all projects. */ sensitiveFields?: Array; /** * A list of global field names which data scrubbers should ignore. */ safeFields?: Array; /** * Specify `true` to prevent IP addresses from being stored for new events on all projects. */ scrubIPAddresses?: boolean; /** * Advanced data scrubbing rules that can be configured for each project as a JSON string. The new rules will only apply to new incoming events. For more details on advanced data scrubbing, see our [full documentation](/security-legal-pii/scrubbing/advanced-datascrubbing/). * * > Warning: Calling this endpoint with this field fully overwrites the advanced data scrubbing rules. * * Below is an example of a payload for a set of advanced data scrubbing rules for masking credit card numbers from the log message (equivalent to `[Mask] [Credit card numbers] from [$message]` in the Sentry app) and removing a specific key called `foo` (equivalent to `[Remove] [Anything] from [extra.foo]` in the Sentry app): * ```json * { * relayPiiConfig: "{\"rules":{\"0\":{\"type\":\"creditcard\",\"redaction\":{\"method\":\"mask\"}},\"1\":{\"type\":\"anything\",\"redaction\":{\"method\":\"remove\"}}},\"applications\":{\"$message\":[\"0\"],\"extra.foo\":[\"1\"]}}" * } * ``` * */ relayPiiConfig?: string; /** * A list of local Relays (the name, public key, and description as a JSON) registered for the organization. This feature is only available for organizations on the Business and Enterprise plans. Read more about Relay [here](/product/relay/). * * Below is an example of a list containing a single local Relay registered for the organization: * ```json * { * trustedRelays: [ * { * name: "my-relay", * publicKey: "eiwr9fdruw4erfh892qy4493reyf89ur34wefd90h", * description: "Configuration for my-relay." * } * ] * } * ``` * */ trustedRelays?: Array<{ [key: string]: unknown; }>; /** * A Relay base URL to use when displaying Client Key DSNs for this organization. */ relayDsnEndpoint?: string | null; /** * Specify `true` to allow the Sentry Slack integration to post replies in threads for an Issue Alert notification. Requires a Slack integration. */ issueAlertsThreadFlag?: boolean; /** * Specify `true` to allow the Sentry Slack integration to post replies in threads for a Metric Alert notification. Requires a Slack integration. */ metricAlertsThreadFlag?: boolean; /** * Specify `true` to restore an organization that is pending deletion. */ cancelDeletion?: boolean; }; export type OrganizationEnvironmentResponse = Array<{ id: string; name: string; }>; export type OrganizationEventsResponseDict = { data: Array<{ [key: string]: unknown; }>; /** * Meta envelope emitted by `handle_results_with_meta` and the * empty-projects short-circuit. Every key is optional because the path * that emits it depends on flags (`standard_meta`, debug, dataset) — the * no-projects path only carries `tips`, the standard path carries * everything below. */ meta: { fields?: { [key: string]: string; }; units?: { [key: string]: string | null; }; tips?: { [key: string]: string; }; datasetReason?: string; isMetricsData?: boolean; isMetricsExtractedData?: boolean; dataset?: string; discoverSplitDecision?: unknown; dataScanned?: string; bytesScanned?: number; debug_info?: unknown; }; }; export type OrganizationEventsTimeseriesResponse = { meta?: { dataset: string; start: number; end: number; }; timeSeries: Array<{ values: Array<{ timestamp: number; value: number; incomplete: boolean; comparisonValue?: number; sampleCount?: number; sampleRate?: number | null; confidence?: 'low' | 'high' | null; incompleteReason?: string; }>; yAxis: string; groupBy?: Array<{ key: string; value: string | number | { [key: string]: unknown; } | null; }>; meta: { order?: number; isOther?: boolean; valueUnit: string | null; dataScanned?: 'partial' | 'full'; valueType: string; interval: number; }; }>; }; export type OrganizationGroupIndexGetResponse = Array<{ id: string; shareId: string | null; shortId: string; title: string; culprit: string | null; permalink: string; logger: string | null; level: 'sample' | 'debug' | 'info' | 'warning' | 'error' | 'fatal' | 'unknown'; status: 'resolved' | 'ignored' | 'pending_deletion' | 'pending_merge' | 'reprocessing' | 'unresolved'; statusDetails: { ignoreCount?: number; ignoreUntil?: string; ignoreUserCount?: number; ignoreUserWindow?: number; ignoreWindow?: number; actor?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; inNextRelease?: boolean; inRelease?: string; inCommit?: string; pendingEvents?: number; info?: { dateCreated: string; syncCount: number; totalEvents: number; } | null; }; substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; isPublic: boolean; platform: string | null; priority: 'low' | 'medium' | 'high' | null; priorityLockedAt: string | null; seerFixabilityScore: number | null; seerAutofixLastTriggered: string | null; seerExplorerAutofixLastTriggered: string | null; project: { id: string; name: string; slug: string; platform: string | null; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; issueType: string; issueCategory: string; metadata: { [key: string]: unknown; }; numComments: number; assignedTo: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; isBookmarked: boolean; isSubscribed: boolean; subscriptionDetails: { disabled?: boolean; reason?: string; } | null; hasSeen: boolean; annotations: Array<{ displayName: string; url: string; }>; isUnhandled: boolean; count: string; userCount: number; firstSeen: string | null; lastSeen: string | null; derivedData: { blocker: string; progress: string; status: string; viewCount: number; hasOpenFixPr: boolean; isAssigned: boolean; hasRootCause: boolean; lastCompletedAutofixStep: string; lastProgressedAt: string | null; }; stats: { [key: string]: unknown; }; lifetime: { [key: string]: unknown; }; filtered: { count: string; userCount: number; firstSeen: string | null; lastSeen: string | null; stats: { [key: string]: unknown; }; } | null; sessionCount: number; inbox: { reason: number; reason_details: { until: string | null; count: number | null; window: number | null; user_count: number | null; user_window: number | null; } | null; date_added: string; }; owners: { type: string; owner: string; date_added: string; }; integrationIssues: Array<{ [key: string]: unknown; }>; sentryAppIssues: Array<{ [key: string]: unknown; }>; latestEventHasAttachments: boolean; matchingEventId: string | null; matchingEventEnvironment: string | null; }>; export type OrganizationGroupIndexPutResponse = { assignedTo?: { type: 'user' | 'team'; id: string; name: string; email?: string; }; discard?: boolean; hasSeen?: boolean; inbox?: boolean; isBookmarked?: boolean; isPublic?: boolean; isSubscribed?: boolean; merge?: { parent: string; children: Array; }; priority?: string; shareId?: string; status?: string; statusDetails?: { inNextRelease?: boolean; inRelease?: string; inCommit?: { commit: string; repository: string; }; ignoreDuration?: number; ignoreCount?: number; ignoreWindow?: number; ignoreUserCount?: number; ignoreUserWindow?: number; }; subscriptionDetails?: { disabled?: boolean; reason?: string; }; substatus?: string; }; export type OrganizationIntegrationResponse = { id: string; name: string; icon: string | null; domainName: string | null; accountType: string | null; scopes: Array | null; outOfDate: boolean | null; status: string; provider: unknown; configOrganization: unknown; configData: unknown; externalId: string; organizationId: number; organizationIntegrationStatus: string; gracePeriodEnd: string | null; }; export type OrganizationMember = { externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; }; export type OrganizationMemberRequest = { /** * The email address to send the invitation to. */ email: string; /** * The organization-level role of the new member. Roles include: * * * `billing` - Can manage payment and compliance details. * * `member` - Can view and act on events, as well as view most other data within the organization. * * `manager` - Has full management access to all teams and projects. Can also manage * the organization's membership. * * `owner` - Has unrestricted access to the organization, its data, and its * settings. Can add, modify, and delete projects and members, as well as * make billing and plan changes. * * `admin` - Can edit global integrations, manage projects, and add/remove teams. * They automatically assume the Team Admin role for teams they join. * Note: This role can no longer be assigned in Business and Enterprise plans. Use `TeamRoles` instead. * */ orgRole?: 'billing' | 'member' | 'manager' | 'owner' | 'admin'; /** * The team and team-roles assigned to the member. Team roles can be either: * - `contributor` - Can view and act on issues. Depending on organization settings, they can also add team members. * - `admin` - Has full management access to their team's membership and projects. */ teamRoles?: Array<{ [key: string]: unknown; }> | null; /** * Whether or not to re-invite a user who has already been invited to the organization. Defaults to True. */ reinvite?: boolean; }; /** * Conforming to the SCIM RFC, this represents a Sentry Org Member * as a SCIM user object. */ export type OrganizationMemberScim = { active?: boolean; schemas: Array; id: string; userName: string; name: { givenName: string; familyName: string; }; emails: Array<{ primary: boolean; value: string; type: string; }>; meta: { resourceType: string; }; sentryOrgRole: string; }; export type OrganizationMemberTeam = { /** * The team-level role to switch to. Valid roles include: * * * `contributor` - Contributors can view and act on events, as well as view most other data within the team's projects. * * `admin` - Admin privileges on the team. They can create and remove projects, and can manage the team's memberships. */ teamRole?: 'contributor' | 'admin'; }; export type OrganizationMemberTeamDetails = { isActive: boolean; teamRole: 'contributor' | 'admin'; }; export type OrganizationMemberWithRoles = { externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; role?: string; roleName?: string; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; teams: Array; teamRoles: Array<{ teamSlug: string; role: string | null; }>; invite_link: string | null; isOnlyOwner: boolean; orgRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; is_global: boolean; isGlobal: boolean; minimumTeamRole: string; }>; teamRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; isMinimumRoleFor: string | null; }>; }; export type OrganizationProfilingChunksResponse = { [key: string]: unknown; }; export type OrganizationProfilingFlamegraphResponse = { [key: string]: unknown; }; export type OrganizationProjectResponseDict = Array<{ latestDeploys?: { [key: string]: { [key: string]: string; }; } | null; options?: { [key: string]: unknown; }; stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; team: { id: string; name: string; slug: string; } | null; teams: Array<{ id: string; name: string; slug: string; }>; platforms: Array; hasUserReports: boolean; environments: Array; latestRelease: { version: string; } | null; }>; export type OrganizationRelayResponse = Array<{ relayId: string; version: string; publicKey: string | null; firstSeen: string; lastSeen: string; }>; export type OrganizationRelease = { /** * An optional commit reference. This is useful if a tagged version has been provided. */ ref?: string | null; /** * A URL that points to the release. For instance, this can be the path to an online interface to the source code, such as a GitHub URL. */ url?: string | null; /** * An optional date that indicates when the release went live. If not provided the current time is used. */ dateReleased?: string | null; /** * An optional list of commit data to be associated. */ commits?: Array<{ id: string; repository?: string | null; message?: string | null; author_name?: string | null; author_email?: string | null; timestamp?: string | null; patch_set?: Array<{ path: string; type: string; }> | null; }>; /** * An optional way to indicate the start and end commits for each repository included in a release. Head commits must include parameters ``repository`` and ``commit`` (the HEAD SHA). For GitLab repositories, please use the Group name instead of the slug. They can optionally include ``previousCommit`` (the SHA of the HEAD of the previous release), which should be specified if this is the first time you've sent commit data. */ refs?: Array<{ commit: string; repository: string; previousCommit?: string | null; }>; }; export type OrganizationSentryAppDetailsResponse = Array<{ allowedOrigins: Array; avatars: Array<{ avatarType: string; avatarUuid: string; avatarUrl: string; color: boolean; photoType: string; }>; events: Array; webhookEvents: Array; featureData: Array; isAlertable: boolean; metadata: string; name: string; schema: string; scopes: Array; slug: string; status: string; uuid: string; verifyInstall: boolean; webhookHeaders: Array; isDisabled?: boolean; author?: string | null; overview?: string | null; popularity?: number | null; redirectUrl?: string | null; webhookUrl?: string | null; clientSecret?: string | null; datePublished?: string; clientId?: string; owner?: { id: number; slug: string; }; }>; export type OrganizationStatsSummaryResponse = { start: string; end: string; projects: Array<{ id: string; slug: string; stats: Array<{ [key: string]: unknown; }>; }>; }; export type OrganizationSummary = { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; export type OrganizationTraceMetaResponse = { uptimeCount?: number; errorsCount: number; logsCount: number; metricsCount: number; performanceIssuesCount: number; spansCount: number; transactionChildCountMap: Array<{ [key: string]: unknown; }>; spansCountMap: { [key: string]: number; }; }; export type OrganizationTraceResponse = Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'span'; children: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; }>; errors: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; }>; occurrences: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; }>; duration: number; end_timestamp: number; measurements: { [key: string]: number; }; browser_web_vital: { [key: string]: number; }; mobile_app_vital: { [key: string]: number; }; op: string; name: string; parent_span_id: string | null; profile_id: string; profiler_id: string; sdk_name: string; start_timestamp: number; is_transaction: boolean; transaction_id: string; additional_attributes?: { [key: string]: unknown; }; } | { description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; } | { description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'uptime_check'; children: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; }>; errors: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; }>; occurrences: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; }>; transaction_id: string; op: string; start_timestamp: number; end_timestamp: number; duration: number; name: string; region_name: string; additional_attributes: { [key: string]: unknown; }; }>; export type OrganizationWithProjectsAndTeams = { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; role?: unknown; orgRole?: string; targetSampleRate?: number; samplingMode?: string; planSampleRate?: number; desiredSampleRate?: number; experiments: { [key: string]: string; }; isDefault: boolean; defaultRole: string; orgRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; is_global: boolean; isGlobal: boolean; minimumTeamRole: string; }>; teamRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; isMinimumRoleFor: string | null; }>; openMembership: boolean; allowSharedIssues: boolean; enhancedPrivacy: boolean; dataScrubber: boolean; dataScrubberDefaults: boolean; sensitiveFields: Array; safeFields: Array; storeCrashReports: number; attachmentsRole: string; debugFilesRole: string; eventsMemberAdmin: boolean; alertsMemberWrite: boolean; scrubIPAddresses: boolean; scrapeJavaScript: boolean; allowJoinRequests: boolean; relayPiiConfig: string | null; relayDsnEndpoint: string | null; trustedRelays: Array<{ name?: string; description?: string; publicKey?: string; created?: string; lastModified?: string; }>; pendingAccessRequests: number; hideAiFeatures: boolean; aggregatedDataConsent: boolean; isDynamicallySampled: boolean; issueAlertsThreadFlag: boolean; metricAlertsThreadFlag: boolean; requiresSso: boolean; defaultAutofixAutomationTuning: string; defaultSeerScannerAutomation: boolean; enableSeerCoding: boolean; defaultCodingAgent: string; defaultCodingAgentIntegrationId: string | null; defaultAutomatedRunStoppingPoint: string; autoEnableCodeReview: boolean; autoOpenPrs: boolean; defaultCodeReviewTriggers: Array; teams: Array<{ id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; externalTeams?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; organization?: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; projects?: Array<{ stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }>; }>; projects: Array<{ latestDeploys?: { [key: string]: { [key: string]: string; }; } | null; options?: { [key: string]: unknown; }; stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; team: { id: string; name: string; slug: string; } | null; teams: Array<{ id: string; name: string; slug: string; }>; platforms: Array; hasUserReports: boolean; environments: Array; latestRelease: { version: string; } | null; }>; }; export type OutcomesResponse = { start: string; end: string; intervals: Array; groups: Array<{ by: { [key: string]: unknown; }; totals: { [key: string]: unknown; }; series: { [key: string]: unknown; }; }>; }; export type OutgoingNotificationAction = { id: number; organizationId: number; integrationId: number | null; sentryAppId: number | null; projects: Array; serviceType: string | null; triggerType: string; targetType: string | null; targetIdentifier: string | null; targetDisplay: string | null; }; export type ProjectAdmin = { /** * Enables starring the project within the projects tab. Can be updated with **`project:read`** permission. */ isBookmarked?: boolean; /** * The name for the project */ name?: string; /** * Uniquely identifies a project and is used for the interface. */ slug?: string; /** * The platform for the project */ platform?: string | null; /** * Custom prefix for emails from this project. */ subjectPrefix?: string; /** * The email subject to use (excluding the prefix) for individual alerts. Here are the list of variables you can use: * - `$title` * - `$shortID` * - `$projectID` * - `$orgID` * - `${tag:key}` - such as `${tag:environment}` or `${tag:release}`. */ subjectTemplate?: string; /** * Automatically resolve an issue if it hasn't been seen for this many hours. Set to `0` to disable auto-resolve. */ resolveAge?: number | null; /** * A JSON mapping of context types to lists of strings for their keys. * E.g. `{'user': ['id', 'email']}` */ highlightContext?: { [key: string]: unknown; }; /** * A list of strings with tag keys to highlight on this project's issues. * E.g. `['release', 'environment']` */ highlightTags?: Array; /** * Automatically create releases from ingested events. When disabled, releases must be created manually (e.g. via the Sentry CLI). */ enableAutoReleaseCreation?: boolean; /** * Enable on-demand source context fetching from SCM integrations for stack traces. */ scmSourceContextEnabled?: boolean; }; export type ProjectEventDetailsResponse = { id: string; groupID: string | null; eventID: string; projectID: string; message: string | null; title: string; location: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string; dateReceived: string | null; contexts: { [key: string]: unknown; } | null; size: number | null; entries: Array; dist: string | null; sdk: { name: string | null; version: string | null; } | null; context: { [key: string]: unknown; } | null; packages: { [key: string]: unknown; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; metadata: { [key: string]: unknown; }; errors: Array<{ type: string; message: string; data: { [key: string]: unknown; }; }>; occurrence: { id: string; projectId: number; eventId: string; fingerprint: Array; issueTitle: string; subtitle: string; resourceId: string | null; evidenceData: { [key: string]: unknown; }; evidenceDisplay: Array<{ name: string; value: string; important: boolean; }>; type: number; detectionTime: number; level: string | null; culprit: string | null; assignee: string | null; priority: number | null; } | null; _meta: { [key: string]: unknown; }; crashFile?: string | null; culprit?: string | null; dateCreated?: string; fingerprints?: Array; groupingConfig?: { id: string; enhancements: string; }; startTimestamp?: number; endTimestamp?: number; measurements?: { [key: string]: { value: number; unit: string | null; }; } | null; breakdowns?: { [key: string]: { [key: string]: { value: number; unit: string | null; }; }; } | null; release: { id?: number; commitCount?: number; data?: { [key: string]: unknown; }; dateCreated?: string; dateReleased?: string | null; deployCount?: number; ref?: string | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; status?: string; url?: string | null; userAgent?: string | null; version?: string | null; versionInfo?: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; } | null; userReport: { id: string; eventID: string; name: string | null; email: string | null; comments: string; dateCreated: string; user: { id: string; username: string | null; email: string | null; name: string | null; ipAddress: string | null; avatarUrl: string | null; } | null; event: { id: string; eventID: string; }; } | null; sdkUpdates: Array<{ [key: string]: unknown; }>; resolvedWith: Array; nextEventID: string | null; previousEventID: string | null; }; export type ProjectEventsResponseDict = Array<{ id: string; 'event.type': string; groupID: string | null; eventID: string; projectID: string; message: string; title: string; location: string | null; culprit: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string | null; dateCreated: string; crashFile: string | null; metadata: { [key: string]: unknown; }; }>; export type ProjectFilterResponse = Array<{ id: string; active: boolean | Array; }>; /** * This represents a Sentry Project Client Key. */ export type ProjectKey = { id: string; name: string; label: string; public: string | null; secret: string | null; projectId: number; isActive: boolean; rateLimit: { window: number; count: number; } | null; dsn: { secret: string; public: string; csp: string; security: string; minidump: string; nel: string; unreal: string; crons: string; cdn: string; playstation: string; integration: string; otlp_traces: string; otlp_logs: string; }; browserSdkVersion: string; browserSdk: { choices: Array>; }; dateCreated: string | null; dynamicSdkLoaderOptions: { hasReplay: boolean; hasPerformance: boolean; hasDebug: boolean; hasFeedback: boolean; hasLogsAndMetrics: boolean; }; useCase?: string; }; export type ProjectKeyPost = { /** * The optional name of the key. If not provided it will be automatically generated. */ name?: string | null; /** * Applies a rate limit to cap the number of errors accepted during a given time window. To * disable entirely set `rateLimit` to null. * ```json * { * "rateLimit": { * "window": 7200, // time in seconds * "count": 1000 // error cap * } * } * ``` */ rateLimit?: { count?: number | null; window?: number | null; }; /** * * `user` * * `profiling` * * `tempest` * * `demo` */ useCase?: 'user' | 'profiling' | 'tempest' | 'demo'; }; export type ProjectOwnership = { schema?: { $version: number; rules: Array<{ matcher: { type: string; pattern: string; }; owners: Array<{ type: string; name: string; id?: string; }>; }>; } | null; raw: string; fallthrough: boolean; dateCreated: string; lastUpdated: string; isActive: boolean; autoAssignment: string; codeownersAutoSync: boolean; }; export type ProjectOwnershipRequest = { /** * Raw input for ownership configuration. See the [Ownership Rules Documentation](/product/issues/ownership-rules/) to learn more. */ raw?: string; /** * A boolean determining who to assign ownership to when an ownership rule has no match. If set to `True`, all project members are made owners. Otherwise, no owners are set. */ fallthrough?: boolean; /** * Auto-assignment settings. The available options are: * - Auto Assign to Issue Owner * - Auto Assign to Suspect Commits * - Turn off Auto-Assignment */ autoAssignment?: string; /** * Set to `True` to sync issue owners with CODEOWNERS updates in a release. */ codeownersAutoSync?: boolean; }; export type ProjectPost = { /** * The name for the project. */ name: string; /** * Uniquely identifies a project and is used for the interface. * If not provided, it is automatically generated from the name. */ slug?: string | null; /** * The platform for the project. */ platform?: string | null; /** * * Defaults to true where the behavior is to alert the user on every new * issue. Setting this to false will turn this off and the user must create * their own alerts to be notified of new issues. * */ default_rules?: boolean; }; export type ProjectProfilingProfileResponse = { [key: string]: unknown; }; export type ProjectRepoLinkRequest = { /** * The ID of the repository to link. */ repositoryId: number; }; export type ProjectRepoLinkResponse = { id: string; projectId: string; repositoryId: string; source: string; created: boolean; }; export type ProjectSizeStatusCheckRulesResponse = { enabled: boolean; rules: Array<{ id: string; metric: 'install_size' | 'download_size'; measurement: 'absolute' | 'absolute_diff' | 'relative_diff'; value: string; filterQuery: string; filters: Array<{ key: 'app_id' | 'build_configuration_name' | 'git_head_ref' | 'platform_name'; conditions: Array<{ operator: 'contains' | 'endsWith' | 'equals' | 'in' | 'matches' | 'notContains' | 'notEndsWith' | 'notEquals' | 'notIn' | 'notMatches' | 'notStartsWith' | 'startsWith'; values: Array; }>; }> | null; artifactType: 'main_artifact' | 'watch_artifact' | 'android_dynamic_feature_artifact' | 'app_clip_artifact' | 'all_artifacts'; }>; }; export type ProjectSnapshotStatusCheckRulesResponse = { enabled: boolean; rules: { failOnAdded: boolean; failOnRemoved: boolean; failOnChanged: boolean; failOnRenamed: boolean; }; }; export type ProjectStats = Array>; export type ProjectSummary = { latestDeploys?: { [key: string]: { [key: string]: string; }; } | null; options?: { [key: string]: unknown; }; stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; team: { id: string; name: string; slug: string; } | null; teams: Array<{ id: string; name: string; slug: string; }>; platforms: Array; hasUserReports: boolean; environments: Array; latestRelease: { version: string; } | null; }; export type ProjectTeamsResponse = Array<{ id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; }>; export type ProjectWithTeam = { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; team?: { id: string; name: string; slug: string; }; teams: Array<{ id: string; name: string; slug: string; }>; }; /** * Applies a rate limit to cap the number of errors accepted during a given time window. To * disable entirely set `rateLimit` to null. * ```json * { * "rateLimit": { * "window": 7200, // time in seconds * "count": 1000 // error cap * } * } * ``` */ export type RateLimit = { count?: number | null; window?: number | null; }; export type ReleaseFile = { /** * The new name (full path) of the file. */ name: string; }; export type ReleaseFileResponse = { id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }; /** * Documents the multipart/form-data body of the release file upload endpoints. * * The endpoints read the upload directly off ``request.data``; this serializer * exists to describe the request body in the OpenAPI schema. */ export type ReleaseFileUpload = { /** * The multipart-encoded file contents to upload. */ file: string; /** * The name (full path) the file will be referenced as, e.g. the full web URI of a JavaScript file. Defaults to the uploaded file's name. */ name?: string; /** * The name of the distribution to associate the file with. */ dist?: string; /** * Headers to attach to the file, each formatted as a `"key:value"` string (for example, to define a content type). May be supplied multiple times. */ header?: Array; }; export type ReleaseHeadCommit = { commit: string; repository: string; previousCommit?: string | null; }; export type ReleaseHeadCommitSerializerDeprecated = { currentId: string; repository: string; previousId?: string | null; }; export type ReleaseSerializerWithProjects = { /** * A version identifier for this release. Can be a version number, a commit hash, and so on. */ version: string; /** * A list of project slugs that are involved in this release. */ projects: Array; /** * An optional commit reference. This is useful if a tagged version has been provided. */ ref?: string | null; /** * A URL that points to the release. For instance, this can be the path to an online interface to the source code, such as a GitHub URL. */ url?: string | null; /** * An optional date that indicates when the release went live. If not provided the current time is used. */ dateReleased?: string | null; /** * An optional list of commit data to be associated. */ commits?: Array<{ id: string; repository?: string | null; message?: string | null; author_name?: string | null; author_email?: string | null; timestamp?: string | null; patch_set?: Array<{ path: string; type: string; }> | null; }>; /** * The status of the release. Can be `open` or `archived`. */ status?: string; /** * The username of the user to set as the release owner. */ owner?: string; /** * (Deprecated) Use `refs` instead. An optional list of head commits to associate with the release, one per repository. */ headCommits?: Array<{ currentId: string; repository: string; previousId?: string | null; }>; /** * An optional list of commit references, one per repository, used to associate commits with the release. */ refs?: Array<{ commit: string; repository: string; previousCommit?: string | null; }>; }; export type ReleaseThresholdStatusResponse = { [key: string]: Array<{ id?: string; date_added?: string; environment?: { [key: string]: unknown; } | null; project?: { [key: string]: unknown; }; release?: string; threshold_type?: 'total_error_count' | 'new_issue_count' | 'unhandled_issue_count' | 'regressed_issue_count' | 'failure_rate' | 'crash_free_session_rate' | 'crash_free_user_rate'; trigger_type?: 'over' | 'under'; value?: number; window_in_seconds?: number; end: string; is_healthy: boolean; key: string; project_slug: string; project_id: number; start: string; metric_value: number | number | { [key: string]: unknown; } | null; }>; }; export type ReplayCounts = { [key: string]: number; }; export type ReplayDeletionJobCreate = { data: { rangeStart: string; rangeEnd: string; environments: Array; query: string | null; }; }; export type ReplayDeletionJobCreateData = { rangeStart: string; rangeEnd: string; environments: Array; query: string | null; }; export type ScimListResponseEnvelopeScimMemberIndexResponse = { schemas: Array; totalResults: number; startIndex: number; itemsPerPage: number; Resources: Array<{ active?: boolean; schemas: Array; id: string; userName: string; name: { givenName: string; familyName: string; }; emails: Array<{ primary: boolean; value: string; type: string; }>; meta: { resourceType: string; }; sentryOrgRole: string; }>; }; export type ScimListResponseEnvelopeScimTeamIndexResponse = { schemas: Array; totalResults: number; startIndex: number; itemsPerPage: number; Resources: Array<{ schemas: Array; id: string; displayName: string; meta: { resourceType: string; }; members?: Array<{ value: string; display: string; }>; }>; }; export type ScimMemberProvision = { /** * The SAML field used for email. */ userName: string; /** * The organization role of the member. If unspecified, this will be * set to the organization's default role. The options are: * * * `billing` - Can manage payment and compliance details. * * `member` - Can view and act on events, as well as view most other data within the organization. * * `manager` - Has full management access to all teams and projects. Can also manage * the organization's membership. * * `admin` - Can edit global integrations, manage projects, and add/remove teams. * They automatically assume the Team Admin role for teams they join. * Note: This role can no longer be assigned in Business and Enterprise plans. Use `TeamRoles` instead. * */ sentryOrgRole?: 'billing' | 'member' | 'manager' | 'admin'; }; export type ScimPatchOperation = { op: string; value: unknown; path?: string; }; export type ScimPatchRequest = { /** * A list of operations to perform. Currently, the only valid operation is setting * a member's `active` attribute to false, after which the member will be permanently deleted. * ```json * { * "Operations": [{ * "op": "replace", * "path": "active", * "value": False * }] * } * ``` * */ Operations: Array<{ op: string; value: unknown; path?: string; }>; }; export type ScimTeamPatchOperation = { op: string; value?: { [key: string]: unknown; }; path?: string; }; export type ScimTeamPatchRequest = { /** * The list of operations to perform. Valid operations are: * * Renaming a team: * ```json * { * "Operations": [{ * "op": "replace", * "value": { * "id": 23, * "displayName": "newName" * } * }] * } * ``` * * Adding a member to a team: * ```json * { * "Operations": [{ * "op": "add", * "path": "members", * "value": [ * { * "value": 23, * "display": "testexample@example.com" * } * ] * }] * } * ``` * * Removing a member from a team: * ```json * { * "Operations": [{ * "op": "remove", * "path": "members[value eq "23"]" * }] * } * ``` * * Replacing an entire member set of a team: * ```json * { * "Operations": [{ * "op": "replace", * "path": "members", * "value": [ * { * "value": 23, * "display": "testexample2@sentry.io" * }, * { * "value": 24, * "display": "testexample3@sentry.io" * } * ] * }] * } * ``` * */ Operations: Array<{ op: string; value?: { [key: string]: unknown; }; path?: string; }>; }; export type ScimTeamRequestBody = { /** * The slug of the team that is shown in the UI. */ displayName: string; }; /** * Response containing list of actively used LLM model names from Seer. */ export type SeerModelsResponse = { models: Array; }; export type SentryAppDetailsResponse = { allowedOrigins: Array; avatars: Array<{ avatarType: string; avatarUuid: string; avatarUrl: string; color: boolean; photoType: string; }>; events: Array; webhookEvents: Array; featureData: Array; isAlertable: boolean; metadata: string; name: string; schema: string; scopes: Array; slug: string; status: string; uuid: string; verifyInstall: boolean; webhookHeaders: Array; isDisabled?: boolean; author?: string | null; overview?: string | null; popularity?: number | null; redirectUrl?: string | null; webhookUrl?: string | null; clientSecret?: string | null; datePublished?: string; clientId?: string; owner?: { id: number; slug: string; }; }; export type SentryAppParser = { /** * The name of the custom integration. */ name: string; /** * The custom integration's permission scopes for API access. */ scopes: Array | null; /** * The custom integration's author. */ author?: string | null; /** * Webhook events the custom integration is subscribed to. */ events?: Array | null; /** * The UI components schema, used to render the custom integration's configuration UI elements. See our [schema docs](https://docs.sentry.io/organization/integrations/integration-platform/ui-components/) for more information. */ schema?: { [key: string]: unknown; } | null; /** * The webhook destination URL. */ webhookUrl?: string | null; /** * The post-installation redirect URL. */ redirectUrl?: string | null; /** * Whether or not the integration is internal only. False means the integration is public. */ isInternal?: boolean; /** * Marks whether or not the custom integration can be used in an alert rule. */ isAlertable?: boolean; /** * The custom integration's description. */ overview?: string | null; /** * Whether or not an installation of the custom integration should be verified. */ verifyInstall?: boolean; /** * The list of allowed origins for CORS. */ allowedOrigins?: Array; /** * Custom headers sent with every webhook request. Each entry is a single 'Header-Name: value' pair. */ webhookHeaders?: Array; }; export type SessionsQueryResult = { start: string; end: string; intervals: Array; groups: Array<{ by: { project?: number; release?: string; environment?: string; 'session.status'?: string; }; series: { [key: string]: Array; }; totals: { [key: string]: number | null; }; }>; query: string; }; export type ShortIdLookupResponse = { organizationSlug: string; projectSlug: string; groupId: string; group: { isUnhandled?: boolean; count?: string; userCount?: number; firstSeen?: string | null; lastSeen?: string | null; derivedData?: { blocker: string; progress: string; status: string; viewCount: number; hasOpenFixPr: boolean; isAssigned: boolean; hasRootCause: boolean; lastCompletedAutofixStep: string; lastProgressedAt: string | null; }; id: string; shareId: string | null; shortId: string; title: string; culprit: string | null; permalink: string; logger: string | null; level: 'sample' | 'debug' | 'info' | 'warning' | 'error' | 'fatal' | 'unknown'; status: 'resolved' | 'ignored' | 'pending_deletion' | 'pending_merge' | 'reprocessing' | 'unresolved'; statusDetails: { ignoreCount?: number; ignoreUntil?: string; ignoreUserCount?: number; ignoreUserWindow?: number; ignoreWindow?: number; actor?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; inNextRelease?: boolean; inRelease?: string; inCommit?: string; pendingEvents?: number; info?: { dateCreated: string; syncCount: number; totalEvents: number; } | null; }; substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; isPublic: boolean; platform: string | null; priority: 'low' | 'medium' | 'high' | null; priorityLockedAt: string | null; seerFixabilityScore: number | null; seerAutofixLastTriggered: string | null; seerExplorerAutofixLastTriggered: string | null; project: { id: string; name: string; slug: string; platform: string | null; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; issueType: string; issueCategory: string; metadata: { [key: string]: unknown; }; numComments: number; assignedTo: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; isBookmarked: boolean; isSubscribed: boolean; subscriptionDetails: { disabled?: boolean; reason?: string; } | null; hasSeen: boolean; annotations: Array<{ displayName: string; url: string; }>; }; shortId: string; }; export type SizeAnalysisResponse = { buildId: string; state: string; appInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; }; gitInfo: { headSha: string | null; baseSha: string | null; provider: string | null; headRepoName: string | null; baseRepoName: string | null; headRef: string | null; baseRef: string | null; prNumber: number | null; } | null; errorCode: string | null; errorMessage: string | null; downloadSize: number | null; installSize: number | null; analysisDuration: number | null; analysisVersion: string | null; baseBuildId: string | null; baseAppInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; } | null; insights: { [key: string]: unknown; } | null; appComponents: Array<{ componentType: string; name: string; appId: string; path: string; downloadSize: number; installSize: number; }> | null; comparisons: Array<{ metricsArtifactType: string; identifier: string | null; state: string; errorCode: string | null; errorMessage: string | null; sizeMetricDiff: { metricsArtifactType: string; identifier: string | null; headInstallSize: number; headDownloadSize: number; baseInstallSize: number; baseDownloadSize: number; } | null; diffItems: Array<{ sizeDiff: number; headSize: number | null; baseSize: number | null; path: string; itemType: string | null; type: string; diffItems: Array | null; }> | null; insightDiffItems: Array<{ insightType: string; status: string; totalSavingsChange: number; fileDiffs: Array<{ sizeDiff: number; headSize: number | null; baseSize: number | null; path: string; itemType: string | null; type: string; diffItems: Array | null; }>; groupDiffs: Array<{ sizeDiff: number; headSize: number | null; baseSize: number | null; path: string; itemType: string | null; type: string; diffItems: Array | null; }>; }> | null; }> | null; }; export type SkipStatusCheck = { /** * The full 40-character lowercase commit SHA. */ sha: string; /** * The repository name in `owner/name` format. */ repository: string; /** * The repository integration provider. * * * `github` * * `github_enterprise` */ provider: 'github' | 'github_enterprise'; }; export type SnapshotCreateResponse = { artifactId: string; snapshotMetricsId: string; imageCount: number; snapshotUrl: string; }; export type SnapshotDetailsResponse = { head_artifact_id?: string; base_artifact_id?: string | null; project_id?: string; comparison_type?: string; state?: string; vcs_info?: { head_sha?: string | null; base_sha?: string | null; provider?: string | null; head_repo_name?: string | null; base_repo_name?: string | null; head_ref?: string | null; base_ref?: string | null; pr_number?: number | null; }; app_id?: string | null; is_selective?: boolean; images?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; image_count?: number; added?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; added_count?: number; removed?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; removed_count?: number; renamed?: Array<{ base_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; head_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; diff_image_key?: string | null; diff?: number | null; }>; renamed_count?: number; changed?: Array<{ base_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; head_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; diff_image_key?: string | null; diff?: number | null; }>; changed_count?: number; unchanged?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; unchanged_count?: number; errored?: Array<{ base_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; head_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; diff_image_key?: string | null; diff?: number | null; }>; errored_count?: number; skipped?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; skipped_count?: number; diff_threshold?: number | null; comparison_state?: string | null; approval_status?: string | null; comparison_error_message?: string | null; approvers?: Array<{ id?: string | null; name?: string | null; email?: string | null; username?: string | null; avatar_url?: string | null; approved_at?: string | null; source?: 'sentry' | 'github'; }>; }; export type SnapshotImageDetailResponse = { image_file_name?: string; comparison_status?: string | null; head_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; diff_threshold?: number | null; description?: string | null; tags?: { [key: string]: string; } | null; image_url?: string; } | null; base_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; diff_threshold?: number | null; description?: string | null; tags?: { [key: string]: string; } | null; image_url?: string; } | null; diff_image_url?: string | null; diff_percentage?: number | null; previous_image_file_name?: string | null; }; export type Source = { /** * The type of the source. * * * `http` - SymbolServer (HTTP) * * `gcs` - Google Cloud Storage * * `s3` - Amazon S3 */ type: 'http' | 'gcs' | 's3'; /** * The human-readable name of the source. */ name: string; /** * The internal ID of the source. Must be distinct from all other source IDs and cannot start with '`sentry:`'. If this is not provided, a new UUID will be generated. */ id?: string; /** * Layout settings for the source. This is required for HTTP, GCS, and S3 sources. * * **`type`** ***(string)*** - The layout of the folder structure. The options are: * - `native` - Platform-Specific (SymStore / GDB / LLVM) * - `symstore` - Microsoft SymStore * - `symstore_index2` - Microsoft SymStore (with index2.txt) * - `ssqp` - Microsoft SSQP * - `unified` - Unified Symbol Server Layout * - `debuginfod` - debuginfod * * **`casing`** ***(string)*** - The layout of the folder structure. The options are: * - `default` - Default (mixed case) * - `uppercase` - Uppercase * - `lowercase` - Lowercase * * ```json * { * "layout": { * "type": "native" * "casing": "default" * } * } * ``` */ layout?: { /** * The source's layout type. * * * `native` * * `symstore` * * `symstore_index2` * * `ssqp` * * `unified` * * `debuginfod` * * `slashsymbols` */ type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; /** * The source's casing rules. * * * `lowercase` * * `uppercase` * * `default` */ casing: 'lowercase' | 'uppercase' | 'default'; }; /** * Filter settings for the source. This is optional for all sources. * * **`filetypes`** ***(list)*** - A list of file types that can be found on this source. If this is left empty, all file types will be enabled. The options are: * - `pe` - Windows executable files * - `pdb` - Windows debug files * - `portablepdb` - .NET portable debug files * - `mach_code` - MacOS executable files * - `mach_debug` - MacOS debug files * - `elf_code` - ELF executable files * - `elf_debug` - ELF debug files * - `wasm_code` - WASM executable files * - `wasm_debug` - WASM debug files * - `breakpad` - Breakpad symbol files * - `sourcebundle` - Source code bundles * - `uuidmap` - Apple UUID mapping files * - `bcsymbolmap` - Apple bitcode symbol maps * - `il2cpp` - Unity IL2CPP mapping files * - `proguard` - ProGuard mapping files * * **`path_patterns`** ***(list)*** - A list of glob patterns to check against the debug and code file paths of debug files. Only files that match one of these patterns will be requested from the source. If this is left empty, no path-based filtering takes place. * * **`requires_checksum`** ***(boolean)*** - Whether this source requires a debug checksum to be sent with each request. Defaults to `false`. * * ```json * { * "filters": { * "filetypes": ["pe", "pdb", "portablepdb"], * "path_patterns": ["*ffmpeg*"] * } * } * ``` */ filters?: { /** * The file types enabled for the source. */ filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; /** * The debug and code file paths enabled for the source. */ path_patterns?: Array; /** * Whether the source requires debug checksums. */ requires_checksum?: boolean; }; /** * The source's URL. Optional for HTTP sources, invalid for all others. */ url?: string; /** * The user name for accessing the source. Optional for HTTP sources, invalid for all others. */ username?: string; /** * The password for accessing the source. Optional for HTTP sources, invalid for all others. */ password?: string; /** * The GCS or S3 bucket where the source resides. Required for GCS and S3 source, invalid for HTTP sources. */ bucket?: string; /** * The source's [S3 region](https://docs.aws.amazon.com/general/latest/gr/s3.html). Required for S3 sources, invalid for all others. * * * `us-east-2` - US East (Ohio) * * `us-east-1` - US East (N. Virginia) * * `us-west-1` - US West (N. California) * * `us-west-2` - US West (Oregon) * * `ap-east-1` - Asia Pacific (Hong Kong) * * `ap-south-1` - Asia Pacific (Mumbai) * * `ap-northeast-2` - Asia Pacific (Seoul) * * `ap-southeast-1` - Asia Pacific (Singapore) * * `ap-southeast-2` - Asia Pacific (Sydney) * * `ap-northeast-1` - Asia Pacific (Tokyo) * * `ca-central-1` - Canada (Central) * * `cn-north-1` - China (Beijing) * * `cn-northwest-1` - China (Ningxia) * * `eu-central-1` - EU (Frankfurt) * * `eu-west-1` - EU (Ireland) * * `eu-west-2` - EU (London) * * `eu-west-3` - EU (Paris) * * `eu-north-1` - EU (Stockholm) * * `sa-east-1` - South America (São Paulo) * * `us-gov-east-1` - AWS GovCloud (US-East) * * `us-gov-west-1` - AWS GovCloud (US) */ region?: 'us-east-2' | 'us-east-1' | 'us-west-1' | 'us-west-2' | 'ap-east-1' | 'ap-south-1' | 'ap-northeast-2' | 'ap-southeast-1' | 'ap-southeast-2' | 'ap-northeast-1' | 'ca-central-1' | 'cn-north-1' | 'cn-northwest-1' | 'eu-central-1' | 'eu-west-1' | 'eu-west-2' | 'eu-west-3' | 'eu-north-1' | 'sa-east-1' | 'us-gov-east-1' | 'us-gov-west-1'; /** * The [AWS Access Key](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys).Required for S3 sources, invalid for all others. */ access_key?: string; /** * The [AWS Secret Access Key](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys).Required for S3 sources, invalid for all others. */ secret_key?: string; /** * The GCS or [S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) prefix. Optional for GCS and S3 sourcse, invalid for HTTP. */ prefix?: string; /** * The GCS email address for authentication. Required for GCS sources, invalid for all others. */ client_email?: string; /** * The GCS private key. Required for GCS sources if not using impersonated tokens. Invalid for all others. */ private_key?: string; }; export type SourceMapDebug = { dist: string | null; release: string | null; exceptions: Array<{ frames: Array<{ debug_id_process: { debug_id: string | null; uploaded_source_file_with_correct_debug_id: boolean; uploaded_source_map_with_correct_debug_id: boolean; }; release_process: { abs_path: string; matching_source_file_names: Array; matching_source_map_name: string | null; source_map_reference: string | null; source_file_lookup_result: 'found' | 'wrong-dist' | 'unsuccessful'; source_map_lookup_result: 'found' | 'wrong-dist' | 'unsuccessful'; } | null; scraping_process: { source_file: { url: string; status: 'success'; } | { url: string; status: 'not_attempted'; } | { url: string; status: 'failure'; reason: 'not_found' | 'disabled' | 'invalid_host' | 'permission_denied' | 'timeout' | 'download_error' | 'other'; details: string | null; } | { [key: string]: unknown; } | null; source_map: { url: string; status: 'success'; } | { url: string; status: 'not_attempted'; } | { url: string; status: 'failure'; reason: 'not_found' | 'disabled' | 'invalid_host' | 'permission_denied' | 'timeout' | 'download_error' | 'other'; details: string | null; } | { [key: string]: unknown; } | null; }; }>; }>; has_debug_ids: boolean; min_debug_id_sdk_version: string | null; sdk_version: string | null; project_has_some_artifact_bundle: boolean; release_has_some_artifact: boolean; has_uploaded_some_artifact_with_a_debug_id: boolean; sdk_debug_id_support: 'not-supported' | 'unofficial-sdk' | 'needs-upgrade' | 'full'; has_scraping_data: boolean; }; export type StatusDetailsValidator = { /** * If true, marks the issue as resolved in the next release. */ inNextRelease: boolean; /** * The version of the release that the issue should be resolved in.If set to `latest`, the latest release will be used. */ inRelease: string; /** * The commit data that the issue should use for resolution. */ inCommit?: { /** * The SHA of the resolving commit. */ commit: string; /** * The name of the repository (as it appears in Sentry). */ repository: string; }; /** * Ignore the issue until for this many minutes. */ ignoreDuration: number; /** * Ignore the issue until it has occurred this many times in `ignoreWindow` minutes. */ ignoreCount: number; /** * Ignore the issue until it has occurred `ignoreCount` times in this many minutes. (Max: 1 week) */ ignoreWindow: number; /** * Ignore the issue until it has affected this many users in `ignoreUserWindow` minutes. */ ignoreUserCount: number; /** * Ignore the issue until it has affected `ignoreUserCount` users in this many minutes. (Max: 1 week) */ ignoreUserWindow: number; }; export type TagKeyDetailsDict = { uniqueValues?: number | null; totalValues?: number | null; topValues?: Array<{ query?: string | null; key: string; name: string; value: string | null; count: number | null; lastSeen: string | null; firstSeen: string | null; }> | null; key: string; name: string; }; export type TagKeyValuesDict = Array<{ query?: string | null; key: string; name: string; value: string | null; count: number | null; lastSeen: string | null; firstSeen: string | null; }>; export type Team = { id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; externalTeams?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; organization?: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; projects?: Array<{ stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }>; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type TeamDetails = { /** * Uniquely identifies a team. This is must be available. */ slug: string; /** * The name of the team. */ name?: string; }; export type TeamPost = { /** * Uniquely identifies a team and is used for the interface. If not * provided, it is automatically generated from the name. */ slug?: string | null; /** * **`[DEPRECATED]`** The name for the team. If not provided, it is * automatically generated from the slug * * @deprecated */ name?: string | null; }; export type TeamScim = { schemas: Array; id: string; displayName: string; meta: { resourceType: string; }; members?: Array<{ value: string; display: string; }>; }; export type TraceItemStatsResponse = { data: Array<{ attributeDistributions: { data: { [key: string]: Array<{ label: string; value: number; }>; }; }; }>; }; export type UpdateClientKey = { /** * The name for the client key */ name?: string; /** * Activate or deactivate the client key. */ isActive?: boolean; /** * Applies a rate limit to cap the number of errors accepted during a given time window. To * disable entirely set `rateLimit` to null. * ```json * { * "rateLimit": { * "window": 7200, // time in seconds * "count": 1000 // error cap * } * } * ``` */ rateLimit?: { count?: number | null; window?: number | null; }; /** * The Sentry Javascript SDK version to use. The currently supported options are: * * * `latest` - Most recent version * * `7.x` - Version 7 releases */ browserSdkVersion?: 'latest' | '7.x'; /** * Configures multiple options for the Javascript Loader Script. * - `Performance Monitoring` * - `Debug Bundles & Logging` * - `Session Replay` - Note that the loader will load the ES6 bundle instead of the ES5 bundle. * - `User Feedback` - Note that the loader will load the ES6 bundle instead of the ES5 bundle. * - `Logs and Metrics` - Note that the loader will load the ES6 bundle instead of the ES5 bundle. Requires SDK >= 10.0.0. * ```json * { * "dynamicSdkLoaderOptions": { * "hasReplay": true, * "hasPerformance": true, * "hasDebug": true, * "hasFeedback": true, * "hasLogsAndMetrics": true * } * } * ``` */ dynamicSdkLoaderOptions?: { hasReplay?: boolean; hasPerformance?: boolean; hasDebug?: boolean; hasFeedback?: boolean; hasLogsAndMetrics?: boolean; }; }; export type UpdateOrgMemberRoles = { /** * The organization role of the member. The options are: * * * `billing` - Can manage payment and compliance details. * * `member` - Can view and act on events, as well as view most other data within the organization. * * `manager` - Has full management access to all teams and projects. Can also manage * the organization's membership. * * `owner` - Has unrestricted access to the organization, its data, and its * settings. Can add, modify, and delete projects and members, as well as * make billing and plan changes. * * `admin` - Can edit global integrations, manage projects, and add/remove teams. * They automatically assume the Team Admin role for teams they join. * Note: This role can no longer be assigned in Business and Enterprise plans. Use `TeamRoles` instead. * */ orgRole?: 'billing' | 'member' | 'manager' | 'owner' | 'admin'; /** * * Configures the team role of the member. The two roles are: * - `contributor` - Can view and act on issues. Depending on organization settings, they can also add team members. * - `admin` - Has full management access to their team's membership and projects. * ```json * { * "teamRoles": [ * { * "teamSlug": "ancient-gabelers", * "role": "admin" * }, * { * "teamSlug": "powerful-abolitionist", * "role": "contributor" * } * ] * } * ``` * */ teamRoles?: Array<{ [key: string]: unknown; }> | null; }; /** * Widget grid layout position and dimensions. * * The dashboard uses a 6-column grid. Required keys: x, y, w, h, minH. * Constraints: x (0-5), y (>= 0), w (1-6), h (>= 1), minH (>= 1), and x + w <= 6. */ export type WidgetLayout = { /** * Column position (0-indexed). */ x: number; /** * Row position (0-indexed). */ y: number; /** * Width in grid columns (1-6). */ w: number; /** * Height in grid rows. */ h: number; /** * Minimum height in grid rows. */ min_h: number; }; export type Workflow = { id: string; name: string; organizationId: string; createdBy: string | null; dateCreated: string; dateUpdated: string; triggers: { id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; } | null; actionFilters: Array<{ id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; }> | null; environment: string | null; config: { [key: string]: unknown; }; detectorIds: Array | null; enabled: boolean; lastTriggered: string | null; owner: string | null; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type WorkflowValidator = { /** * The name of the alert */ name: string; /** * The ID of the existing alert */ id?: string; /** * Whether the alert is enabled or disabled */ enabled?: boolean; /** * The IDs of the monitors to connect this alert to. Use 'Fetch an Organization's Monitors' to find the IDs. */ detector_ids?: Array; /** * * Typically the frequency at which the alert will fire, in minutes. * * - `0`: 0 minutes * - `5`: 5 minutes * - `10`: 10 minutes * - `30`: 30 minutes * - `60`: 1 hour * - `180`: 3 hours * - `720`: 12 hours * - `1440`: 24 hours * * ```json * { * "frequency":3600 * } * ``` * */ config?: { [key: string]: unknown; }; /** * The name of the environment for the alert to evaluate in */ environment?: string | null; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ triggers?: { id?: number; /** * * `any` * * `any-short` * * `all` * * `none` */ logic_type: 'any' | 'any-short' | 'all' | 'none'; conditions?: Array; }; /** * The filters to run before the action will fire and the action(s) to fire. * * `logicType` can be one of `any-short`, `all`, or `none`. * * Below is a basic example. See below for all other options. * * ```json * "actionFilters": [ * { * "logicType": "any", * "conditions": [ * { * "type": "level", * "comparison": { * "level": 50, * "match": "eq" * }, * "conditionResult": true * } * ], * "actions": [ * { * "id": "123", * "type": "email", * "integrationId": null, * "data": {}, * "config": { * "targetType": "user", * "targetDisplay": null, * "targetIdentifier": "56789" * }, * "status": "active" * } * ] * } * ] * ``` * * ## Conditions * * **Issue Age** * - `time`: One of `minute`, `hour`, `day`, or `week`. * - `value`: A positive integer. * - `comparisonType`: One of `older` or `newer`. * ```json * { * "type": "age_comparison", * "comparison": { * "time": "minute", * "value": 10, * "comparisonType": "older" * }, * "conditionResult": true * } * * ``` * * **Issue Assignment** * - `targetType`: Who the issue is assigned to * - `Unassigned`: Unassigned * - `Member`: Assigned to a user * - `Team`: Assigned to a team * - `targetIdentifier`: The ID of the user or team from the `targetType`. Enter "" if `targetType` is `Unassigned`. * ```json * { * "type": "assigned_to", * "comparison": { * "targetType": "Member", * "targetIdentifier": 123456 * }, * "conditionResult": true * } * ``` * * **Issue Category** * - `value`: The issue category to filter to. * - `1`: Error issues * - `6`: Feedback issues * - `10`: Outage issues * - `11`: Metric issues * - `12`: DB Query issues * - `13`: HTTP Client issues * - `14`: Front end issues * - `15`: Mobile issues * ```json * { * "type": "issue_category", * "comparison": { * "value": 1 * }, * "conditionResult": true * } * ``` * * **Issue Frequency** * - `value`: A positive integer representing how many times the issue has to happen before the alert will fire. * ```json * { * "type": "issue_occurrences", * "comparison": { * "value": 10 * }, * "conditionResult": true * } * ``` * * **De-escalation** * ```json * { * "type": "issue_priority_deescalating", * "comparison": true, * "conditionResult": true * } * ``` * * **Issue Priority** * - `comparison`: The priority the issue must be for the alert to fire. * - `75`: High priority * - `50`: Medium priority * - `25`: Low priority * ```json * { * "type": "issue_priority_greater_or_equal", * "comparison": 75, * "conditionResult": true * } * ``` * * **Number of Users Affected** * - `value`: A positive integer representing the number of users that must be affected before the alert will fire. * - `filters`: A list of additional sub-filters to evaluate before the alert will fire. * - `interval`: The time period in which to evaluate the value. e.g. Number of users affected by an issue is more than `value` in `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * ```json * { * "type": "event_unique_user_frequency_count", * "comparison": { * "value": 100, * "filters": [{"key": "foo", "match": "eq", "value": "bar"}], * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Number of Events** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Number of events in an issue is more than `value` in `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * ```json * { * "type": "event_frequency_count", * "comparison": { * "value": 100, * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Percent of Events** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Number of events in an issue is `comparisonInterval` percent higher `value` compared to `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * - `comparisonInterval`: The time period to compare against. See `interval` for options. * ```json * { * "type": "event_frequency_percent", * "comparison": { * "value": 100, * "interval": "1h", * "comparisonInterval": "1w" * }, * "conditionResult": true * } * * ``` * * **Percentage of Sessions Affected Count** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Percentage of sessions affected by an issue is more than `value` in `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * ```json * { * "type": "percent_sessions_count", * "comparison": { * "value": 10, * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Percentage of Sessions Affected Percent** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Percentage of sessions affected by an issue is `comparisonInterval` percent higher `value` compared to `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * - `comparisonInterval`: The time period to compare against. See `interval` for options. * ```json * { * "type": "percent_sessions_percent", * "comparison": { * "value": 10, * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Event Attribute** * The event's `attribute` value `match` `value` * * - `attribute`: The event attribute to match on. Valid values are: `message`, `platform`, `environment`, `type`, `error.handled`, `error.unhandled`, `error.main_thread`, `exception.type`, `exception.value`, `user.id`, `user.email`, `user.username`, `user.ip_address`, `http.method`, `http.url`, `http.status_code`, `sdk.name`, `stacktrace.code`, `stacktrace.module`, `stacktrace.filename`, `stacktrace.abs_path`, `stacktrace.package`, `unreal.crash_type`, `app.in_foreground`. * - `match`: The comparison operator * - `co`: Contains * - `nc`: Does not contain * - `eq`: Equals * - `ne`: Does not equal * - `sw`: Starts with * - `ew`: Ends with * - `is`: Is set * - `ns`: Is not set * - `value`: A string. Not required when match is `is` or `ns`. * * ```json * { * "type": "event_attribute", * "comparison": { * "match": "co", * "value": "bar", * "attribute": "message" * }, * "conditionResult": true * } * ``` * * **Tagged Event** * The event's tags `key` match `value` * - `key`: The tag value * - `match`: The comparison operator * - `co`: Contains * - `nc`: Does not contain * - `eq`: Equals * - `ne`: Does not equal * - `sw`: Starts with * - `ew`: Ends with * - `is`: Is set * - `ns`: Is not set * - `value`: A string. Not required when match is `is` or `ns`. * * ```json * { * "type": "tagged_event", * "comparison": { * "key": "level", * "match": "eq", * "value": "error" * }, * "conditionResult": true * } * ``` * * **Latest Release** * The event is from the latest release * * ```json * { * "type": "latest_release", * "comparison": true, * "conditionResult": true * } * ``` * * **Release Age** * ```json * { * "type": "latest_adopted_release", * "comparison": { * "environment": "production", * "ageComparison": "older", * "releaseAgeType": "oldest" * }, * "conditionResult": true * } * ``` * * **Event Level** * The event's level is `match` `level` * - `match`: The comparison operator * - `eq`: Equal * - `gte`: Greater than or equal * - `lte`: Less than or equal * - `level`: The event level * - `50`: Fatal * - `40`: Error * - `30`: Warning * - `20`: Info * - `10`: Debug * - `0`: Sample * * ```json * { * "type": "level", * "comparison": { * "level": 50, * "match": "eq" * }, * "conditionResult": true * } * ``` * * ## Actions * A list of actions that take place when all required conditions and filters for the alert are met. See below for a list of possible actions. * * * **Notify on Preferred Channel** * - `data`: A dictionary with the fallthrough type option when choosing to notify Suggested Assignees. Leave empty if notifying a user or team. * - `fallthroughType` * - `ActiveMembers` * - `AllMembers` * - `NoOne` * - `config`: A dictionary with the configuration options for notification. * - `targetType`: The type of recipient to notify * - `user`: User * - `team`: Team * - `issue_owners`: Suggested Assignees * - `targetDisplay`: null * - `targetIdentifier`: The id of the user or team to notify. Leave null for Suggested Assignees. * * ```json * { * "type":"email", * "integrationId":null, * "data":{}, * "config":{ * "targetType":"user", * "targetDisplay":null, * "targetIdentifier":"232692" * }, * "status":"active" * }, * { * "type":"email", * "integrationId":null, * "data":{ * "fallthroughType":"ActiveMembers" * }, * "config":{ * "targetType":"issue_owners", * "targetDisplay":null, * "targetIdentifier":""} * , * "status":"active" * } * ``` * **Notify on Slack** * - `targetDisplay`: The name of the channel to notify in. * `integrationId`: The stringified ID of the integration. * * ```json * { * "type":"slack", * "config":{ * "targetType":"specific", * "targetIdentifier":"", * "targetDisplay":"notify-errors" * }, * "integrationId":"1", * "data":{}, * "status":"active" * } * ``` * * **Notify on PagerDuty** * - `targetDisplay`: The name of the service to create the ticket in. * - `integrationId`: The stringified ID of the integration. * - `data["priority"]`: The severity level for the notification. * * ```json * { * "type":"pagerduty", * "config":{ * "targetType":"specific", * "targetIdentifier":"123456", * "targetDisplay":"Error Service" * }, * "integrationId":"2345", * "data":{ * "priority":"default" * }, * "status":"active" * } * ``` * * **Notify on Discord** * - `targetDisplay`: The name of the service to create the ticket in. * - `integrationId`: The stringified ID of the integration. * - `data["tags"]`: Comma separated list of tags to add to the notification. * * ```json * { * "type":"discord", * "config":{ * "targetType":"specific", * "targetIdentifier":"12345", * "targetDisplay":"", * }, * "integrationId":"1234", * "data":{ * "tags":"transaction,environment" * }, * "status":"active" * } * ``` * * **Notify on MSTeams** * - `targetIdentifier` - The integration ID associated with the Microsoft Teams team. * - `targetDisplay` - The name of the channel to send the notification to. * - `integrationId`: The stringified ID of the integration. * ```json * { * "type":"msteams", * "config":{ * "targetType":"specific", * "targetIdentifier":"19:a4b3kghaghgkjah357y6847@thread.skype", * "targetDisplay":"notify-errors" * }, * "integrationId":"1", * "data":{}, * "status":"active" * } * ``` * * **Notify on OpsGenie** * - `targetDisplay`: The name of the Opsgenie team. * - `targetIdentifier`: The ID of the Opsgenie team to send the notification to. * - `integrationId`: The stringified ID of the integration. * - `data["priority"]`: The priority level for the notification. * * ```json * { * "type":"opsgenie", * "config":{ * "targetType":"specific", * "targetIdentifier":"123456-Error-Service", * "targetDisplay":"Error Service" * }, * "integrationId":"2345", * "data":{ * "priority":"P3" * }, * "status":"active" * } * ``` * * **Notify on Azure DevOps** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"vsts", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{...}, * "status":"active" * } * ``` * * **Create a Jira ticket** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"jira", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{...}, * "status":"active" * } * ``` * * **Create a Jira Server ticket** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"jira_server", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{...}, * "status":"active" * } * ``` * * **Create a GitHub issue** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"github", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{ * "additional_fields": { * "assignee": "", * "integration": "2345", * "labels": [], * "repo": "example-repo", * }, * "dynamic_form_fields": [ * { * "choices": [["YourOrg/example-repo", "example-repo"]], * "default": "YourOrg/example-repo", * "label": "GitHub Repository", * "name": "repo", * "required": true * "type": "select", * "updatesForm": true, * "url": "/extensions/github/search/example-repo/1234567/", * }, * ], * }, * "status":"active" * } * ``` * */ action_filters?: Array<{ [key: string]: unknown; }>; /** * * The ID user or team who owns the monitor or alert prefaced by the string 'user' or 'team'. * * **User** * ```json * "user:123456" * ``` * * **Team** * ```json * "team:456789" * ``` * */ owner?: string | null; }; export type LegacyBrowserFilter = { /** * Toggle the browser-extensions, localhost, filtered-transaction, or web-crawlers filter on or off. */ active?: boolean; /** * * Specifies which legacy browser filters should be active. Anything excluded from the list will be * disabled. The options are: * - `ie` - Internet Explorer Version 11 and lower * - `edge` - Edge Version 110 and lower * - `safari` - Safari Version 15 and lower * - `firefox` - Firefox Version 110 and lower * - `chrome` - Chrome Version 110 and lower * - `opera` - Opera Version 99 and lower * - `android` - Android Version 3 and lower * - `opera_mini` - Opera Mini Version 34 and lower * * Deprecated options: * - `ie_pre_9` - Internet Explorer Version 8 and lower * - `ie9` - Internet Explorer Version 9 * - `ie10` - Internet Explorer Version 10 * - `ie11` - Internet Explorer Version 11 * - `safari_pre_6` - Safari Version 5 and lower * - `opera_pre_15` - Opera Version 14 and lower * - `opera_mini_pre_8` - Opera Mini Version 8 and lower * - `android_pre_4` - Android Version 3 and lower * - `edge_pre_79` - Edge Version 18 and lower (non Chromium based) * */ subfilters?: Array<'ie' | 'edge' | 'safari' | 'firefox' | 'chrome' | 'opera' | 'android' | 'opera_mini' | 'ie_pre_9' | 'ie9' | 'ie10' | 'ie11' | 'opera_pre_15' | 'android_pre_4' | 'safari_pre_6' | 'opera_mini_pre_8' | 'edge_pre_79'>; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ export type ExternalUserWritable = { /** * The user ID in Sentry. */ user_id: number; /** * The associated name for the provider. */ external_name: string; /** * The provider of the external actor. * * * `github` * * `github_enterprise` * * `jira_server` * * `slack` * * `slack_staging` * * `perforce` * * `gitlab` * * `msteams` * * `custom_scm` */ provider: 'github' | 'github_enterprise' | 'jira_server' | 'slack' | 'slack_staging' | 'perforce' | 'gitlab' | 'msteams' | 'custom_scm'; /** * The Integration ID. */ integration_id: number; /** * The associated user ID for provider. */ external_id?: string | null; }; export type OrganizationMemberRequestWritable = { /** * The email address to send the invitation to. */ email: string; /** * The organization-level role of the new member. Roles include: * * * `billing` - Can manage payment and compliance details. * * `member` - Can view and act on events, as well as view most other data within the organization. * * `manager` - Has full management access to all teams and projects. Can also manage * the organization's membership. * * `owner` - Has unrestricted access to the organization, its data, and its * settings. Can add, modify, and delete projects and members, as well as * make billing and plan changes. * * `admin` - Can edit global integrations, manage projects, and add/remove teams. * They automatically assume the Team Admin role for teams they join. * Note: This role can no longer be assigned in Business and Enterprise plans. Use `TeamRoles` instead. * */ orgRole?: 'billing' | 'member' | 'manager' | 'owner' | 'admin'; /** * The team and team-roles assigned to the member. Team roles can be either: * - `contributor` - Can view and act on issues. Depending on organization settings, they can also add team members. * - `admin` - Has full management access to their team's membership and projects. */ teamRoles?: Array<{ [key: string]: unknown; }> | null; /** * Whether or not to send an invite notification through email. Defaults to True. */ sendInvite?: boolean; /** * Whether or not to re-invite a user who has already been invited to the organization. Defaults to True. */ reinvite?: boolean; }; export type ListOrganizationsData = { body?: never; path?: never; query?: { /** * Specify `true` to restrict results to organizations in which you are an owner. */ owner?: boolean; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * Filters results by using [query syntax](/product/sentry-basics/search/). * * Valid query fields include: * - `id`: The organization ID * - `slug`: The organization slug * - `status`: The organization's current status (one of `active`, `pending_deletion`, or `deletion_in_progress`) * - `email` or `member_id`: Filter your organizations by the emails or [organization member IDs](/api/organizations/list-an-organizations-members/) of specific members included * - `query`: Filter your organizations by name, slug, and members that contain this substring * * Example: `query=(slug:foo AND status:active) OR (email:[thing-one@example.com,thing-two@example.com] AND query:bar)` * */ query?: string; /** * The field to sort results by, in descending order. If not specified the results are sorted by the date they were created. * * Valid fields include: * - `members`: By number of members * - `events`: By number of events in the past 24 hours * */ sortBy?: string; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; }; url: '/api/0/organizations/'; }; export type ListOrganizationsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationsResponses = { 200: Array<{ features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }>; }; export type ListOrganizationsResponse = ListOrganizationsResponses[keyof ListOrganizationsResponses]; export type GetOrganizationData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * * Specify `"0"` to return organization details that do not include projects or teams. * */ detailed?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/'; }; export type GetOrganizationErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationResponses = { 200: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; }; export type GetOrganizationResponse = GetOrganizationResponses[keyof GetOrganizationResponses]; export type UpdateOrganizationData = { body?: { /** * The new slug for the organization, which needs to be unique. */ slug?: string; /** * The new name for the organization. */ name?: string; /** * Specify `true` to opt-in to new features before they're released to the public. */ isEarlyAdopter?: boolean; /** * Specify `true` to hide AI features from the organization. */ hideAiFeatures?: boolean; /** * The default role new members will receive. * * * `member` - Member * * `admin` - Admin * * `manager` - Manager * * `owner` - Owner */ defaultRole?: 'member' | 'admin' | 'manager' | 'owner'; /** * Specify `true` to allow organization members to freely join any team. */ openMembership?: boolean; /** * Specify `true` to allow members to delete events (including the delete & discard action) by granting them the `event:admin` scope. */ eventsMemberAdmin?: boolean; /** * Specify `true` to allow members to create, edit, and delete alert rules by granting them the `alerts:write` scope. */ alertsMemberWrite?: boolean; /** * The role required to download event attachments, such as native crash reports or log files. * * * `member` - Member * * `admin` - Admin * * `manager` - Manager * * `owner` - Owner */ attachmentsRole?: 'member' | 'admin' | 'manager' | 'owner'; /** * The role required to download debug information files, ProGuard mappings and source maps. * * * `member` - Member * * `admin` - Admin * * `manager` - Manager * * `owner` - Owner */ debugFilesRole?: 'member' | 'admin' | 'manager' | 'owner'; /** * Specify `true` to enable granular replay permissions, allowing per-member access control for replay data. */ hasGranularReplayPermissions?: boolean; /** * A list of user IDs who have permission to access replay data. Requires the hasGranularReplayPermissions flag to be true to be enforced. */ replayAccessMembers?: Array | null; /** * The type of display picture for the organization. * * * `letter_avatar` - Use initials * * `upload` - Upload an image */ avatarType?: 'letter_avatar' | 'upload'; /** * The image to upload as the organization avatar, in base64. Required if `avatarType` is `upload`. */ avatar?: string; /** * Specify `true` to require and enforce two-factor authentication for all members. */ require2FA?: boolean; /** * Specify `true` to allow sharing of limited details on issues to anonymous users. */ allowSharedIssues?: boolean; /** * Specify `true` to enable enhanced privacy controls to limit personally identifiable information (PII) as well as source code in things like notifications. */ enhancedPrivacy?: boolean; /** * Specify `true` to allow Sentry to scrape missing JavaScript source context when possible. */ scrapeJavaScript?: boolean; /** * How many native crash reports (such as Minidumps for improved processing and download in issue details) to store per issue. * * * `0` - Disabled * * `1` - 1 per issue * * `5` - 5 per issue * * `10` - 10 per issue * * `20` - 20 per issue * * `50` - 50 per issue * * `100` - 100 per issue * * `-1` - Unlimited */ storeCrashReports?: 0 | 1 | 5 | 10 | 20 | 50 | 100 | -1; /** * Specify `true` to allow users to request to join your organization. */ allowJoinRequests?: boolean; /** * Specify `true` to require server-side data scrubbing for all projects. */ dataScrubber?: boolean; /** * Specify `true` to apply the default scrubbers to prevent things like passwords and credit cards from being stored for all projects. */ dataScrubberDefaults?: boolean; /** * A list of additional global field names to match against when scrubbing data for all projects. */ sensitiveFields?: Array; /** * A list of global field names which data scrubbers should ignore. */ safeFields?: Array; /** * Specify `true` to prevent IP addresses from being stored for new events on all projects. */ scrubIPAddresses?: boolean; /** * Advanced data scrubbing rules that can be configured for each project as a JSON string. The new rules will only apply to new incoming events. For more details on advanced data scrubbing, see our [full documentation](/security-legal-pii/scrubbing/advanced-datascrubbing/). * * > Warning: Calling this endpoint with this field fully overwrites the advanced data scrubbing rules. * * Below is an example of a payload for a set of advanced data scrubbing rules for masking credit card numbers from the log message (equivalent to `[Mask] [Credit card numbers] from [$message]` in the Sentry app) and removing a specific key called `foo` (equivalent to `[Remove] [Anything] from [extra.foo]` in the Sentry app): * ```json * { * relayPiiConfig: "{\"rules":{\"0\":{\"type\":\"creditcard\",\"redaction\":{\"method\":\"mask\"}},\"1\":{\"type\":\"anything\",\"redaction\":{\"method\":\"remove\"}}},\"applications\":{\"$message\":[\"0\"],\"extra.foo\":[\"1\"]}}" * } * ``` * */ relayPiiConfig?: string; /** * A list of local Relays (the name, public key, and description as a JSON) registered for the organization. This feature is only available for organizations on the Business and Enterprise plans. Read more about Relay [here](/product/relay/). * * Below is an example of a list containing a single local Relay registered for the organization: * ```json * { * trustedRelays: [ * { * name: "my-relay", * publicKey: "eiwr9fdruw4erfh892qy4493reyf89ur34wefd90h", * description: "Configuration for my-relay." * } * ] * } * ``` * */ trustedRelays?: Array<{ [key: string]: unknown; }>; /** * A Relay base URL to use when displaying Client Key DSNs for this organization. */ relayDsnEndpoint?: string | null; /** * Specify `true` to allow the Sentry Slack integration to post replies in threads for an Issue Alert notification. Requires a Slack integration. */ issueAlertsThreadFlag?: boolean; /** * Specify `true` to allow the Sentry Slack integration to post replies in threads for a Metric Alert notification. Requires a Slack integration. */ metricAlertsThreadFlag?: boolean; /** * Specify `true` to restore an organization that is pending deletion. */ cancelDeletion?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/'; }; export type UpdateOrganizationErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; /** * Conflict */ 409: unknown; /** * Image too large. */ 413: unknown; }; export type UpdateOrganizationResponses = { 200: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; role?: unknown; orgRole?: string; targetSampleRate?: number; samplingMode?: string; planSampleRate?: number; desiredSampleRate?: number; experiments: { [key: string]: string; }; isDefault: boolean; defaultRole: string; orgRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; is_global: boolean; isGlobal: boolean; minimumTeamRole: string; }>; teamRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; isMinimumRoleFor: string | null; }>; openMembership: boolean; allowSharedIssues: boolean; enhancedPrivacy: boolean; dataScrubber: boolean; dataScrubberDefaults: boolean; sensitiveFields: Array; safeFields: Array; storeCrashReports: number; attachmentsRole: string; debugFilesRole: string; eventsMemberAdmin: boolean; alertsMemberWrite: boolean; scrubIPAddresses: boolean; scrapeJavaScript: boolean; allowJoinRequests: boolean; relayPiiConfig: string | null; relayDsnEndpoint: string | null; trustedRelays: Array<{ name?: string; description?: string; publicKey?: string; created?: string; lastModified?: string; }>; pendingAccessRequests: number; hideAiFeatures: boolean; aggregatedDataConsent: boolean; isDynamicallySampled: boolean; issueAlertsThreadFlag: boolean; metricAlertsThreadFlag: boolean; requiresSso: boolean; defaultAutofixAutomationTuning: string; defaultSeerScannerAutomation: boolean; enableSeerCoding: boolean; defaultCodingAgent: string; defaultCodingAgentIntegrationId: string | null; defaultAutomatedRunStoppingPoint: string; autoEnableCodeReview: boolean; autoOpenPrs: boolean; defaultCodeReviewTriggers: Array; teams: Array<{ id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; externalTeams?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; organization?: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; projects?: Array<{ stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }>; }>; projects: Array<{ latestDeploys?: { [key: string]: { [key: string]: string; }; } | null; options?: { [key: string]: unknown; }; stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; team: { id: string; name: string; slug: string; } | null; teams: Array<{ id: string; name: string; slug: string; }>; platforms: Array; hasUserReports: boolean; environments: Array; latestRelease: { version: string; } | null; }>; }; }; export type UpdateOrganizationResponse = UpdateOrganizationResponses[keyof UpdateOrganizationResponses]; export type GetOrganizationConfigIntegrationsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * Specific integration provider to filter by such as `slack`. See our [Integrations Documentation](/product/integrations/) for an updated list of providers. */ providerKey?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/config/integrations/'; }; export type GetOrganizationConfigIntegrationsErrors = { /** * Bad Request */ 404: unknown; }; export type GetOrganizationConfigIntegrationsResponses = { 200: { providers: Array<{ key: string; slug: string; name: string; metadata: unknown; canAdd: boolean; canDisable: boolean; features: Array; }>; }; }; export type GetOrganizationConfigIntegrationsResponse = GetOrganizationConfigIntegrationsResponses[keyof GetOrganizationConfigIntegrationsResponses]; export type ListOrganizationDashboardsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/dashboards/'; }; export type ListOrganizationDashboardsErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationDashboardsResponses = { 200: Array<{ id: string; title: string; dateCreated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; environment: Array; filters: { release?: Array; releaseId?: Array; globalFilter?: Array<{ [key: string]: unknown; }>; }; lastVisited: string | null; widgetDisplay: Array; widgetPreview: Array<{ [key: string]: string; }>; permissions: { isEditableByEveryone: boolean; teamsWithEditAccess: Array; } | null; isFavorited: boolean; projects: Array; prebuiltId: number | null; }>; }; export type ListOrganizationDashboardsResponse = ListOrganizationDashboardsResponses[keyof ListOrganizationDashboardsResponses]; export type CreateOrganizationDashboardData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The user defined title for this dashboard. */ title: string; /** * A dashboard's unique id. */ id?: string; /** * A json list of widgets saved in this dashboard. */ widgets?: Array<{ id?: string; title?: string; description?: string | null; thresholds?: { [key: string]: unknown; } | null; /** * * `line` * * `area` * * `bar` * * `table` * * `big_number` * * `details` * * `categorical_bar` * * `wheel` * * `rage_and_dead_clicks` * * `server_tree` * * `text` * * `agents_traces_table` * * `heatmap` */ display_type?: 'line' | 'area' | 'bar' | 'table' | 'big_number' | 'details' | 'categorical_bar' | 'wheel' | 'rage_and_dead_clicks' | 'server_tree' | 'text' | 'agents_traces_table' | 'heatmap'; interval?: string; queries?: Array<{ id?: string; fields?: Array; aggregates?: Array | null; columns?: Array | null; field_aliases?: Array | null; name?: string; conditions?: string; orderby?: string; is_hidden?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ on_demand_extraction?: { extraction_state?: string; enabled?: boolean; }; on_demand_extraction_disabled?: boolean; selected_aggregate?: number | null; linked_dashboards?: Array<{ field: string; dashboard_id: string; }> | null; }>; /** * * `discover` * * `issue` * * `metrics` * * `error-events` * * `transaction-like` * * `spans` * * `logs` * * `tracemetrics` * * `preprod-app-size` */ widget_type?: 'discover' | 'issue' | 'metrics' | 'error-events' | 'transaction-like' | 'spans' | 'logs' | 'tracemetrics' | 'preprod-app-size' | null; limit?: number | null; /** * Widget grid layout position and dimensions. * * The dashboard uses a 6-column grid. Required keys: x, y, w, h, minH. * Constraints: x (0-5), y (>= 0), w (1-6), h (>= 1), minH (>= 1), and x + w <= 6. */ layout?: { /** * Column position (0-indexed). */ x: number; /** * Row position (0-indexed). */ y: number; /** * Width in grid columns (1-6). */ w: number; /** * Height in grid rows. */ h: number; /** * Minimum height in grid rows. */ min_h: number; } | null; /** * * `auto` * * `dataMin` */ axis_range?: 'auto' | 'dataMin' | null; /** * * `default` * * `breakdown` */ legend_type?: 'default' | 'breakdown' | null; }>; /** * The saved projects filter for this dashboard. */ projects?: Array; /** * The saved environment filter for this dashboard. */ environment?: Array | null; /** * The saved time range period for this dashboard. */ period?: string | null; /** * The saved start time for this dashboard. */ start?: string | null; /** * The saved end time for this dashboard. */ end?: string | null; /** * The saved filters for this dashboard. */ filters?: { [key: string]: unknown; }; /** * Setting that lets you display saved time range for this dashboard in UTC. */ utc?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ permissions?: { /** * Whether the dashboard is editable by everyone. */ is_editable_by_everyone: boolean; /** * List of team IDs that have edit access to a dashboard. */ teams_with_edit_access?: Array; } | null; /** * Favorite the dashboard automatically for the request user */ is_favorited?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/dashboards/'; }; export type CreateOrganizationDashboardErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; /** * Conflict */ 409: unknown; }; export type CreateOrganizationDashboardResponses = { 201: { environment?: Array; period?: string; utc?: string; expired?: boolean; start?: string; end?: string; id: string; title: string; dateCreated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; widgets: Array<{ id: string; title: string; description: string | null; displayType: string; thresholds: { preferredPolarity?: string; max_values: { [key: string]: number; }; unit: string; } | null; interval: string; dateCreated: string; dashboardId: string; queries: Array<{ id: string; name: string; fields: Array; aggregates: Array; columns: Array; fieldAliases: Array; conditions: string; orderby: string; widgetId: string; onDemand: Array<{ enabled: boolean; extractionState: string; dashboardWidgetQueryId: number; }>; isHidden: boolean; selectedAggregate: number | null; linkedDashboards: Array<{ field: string; dashboardId: number; }>; }>; limit: number | null; widgetType: string | null; layout: { [key: string]: number; } | null; axisRange: string | null; legendType: 'default' | 'breakdown' | null; datasetSource: string | null; exploreUrls: Array | null; changedReason: Array<{ orderby: Array<{ [key: string]: string; }> | null; equations: Array<{ [key: string]: string | Array; }> | null; selected_columns: Array; }> | null; }>; projects: Array; filters: { release?: Array; releaseId?: Array; globalFilter?: Array<{ [key: string]: unknown; }>; }; permissions: { isEditableByEveryone: boolean; teamsWithEditAccess: Array; } | null; isFavorited: boolean; prebuiltId: number | null; }; }; export type CreateOrganizationDashboardResponse = CreateOrganizationDashboardResponses[keyof CreateOrganizationDashboardResponses]; export type DeleteOrganizationDashboardData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the dashboard you'd like to retrieve. */ dashboard_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/dashboards/{dashboard_id}/'; }; export type DeleteOrganizationDashboardErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationDashboardResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationDashboardResponse = DeleteOrganizationDashboardResponses[keyof DeleteOrganizationDashboardResponses]; export type GetOrganizationDashboardData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the dashboard you'd like to retrieve. */ dashboard_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/dashboards/{dashboard_id}/'; }; export type GetOrganizationDashboardErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationDashboardResponses = { 200: { environment?: Array; period?: string; utc?: string; expired?: boolean; start?: string; end?: string; id: string; title: string; dateCreated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; widgets: Array<{ id: string; title: string; description: string | null; displayType: string; thresholds: { preferredPolarity?: string; max_values: { [key: string]: number; }; unit: string; } | null; interval: string; dateCreated: string; dashboardId: string; queries: Array<{ id: string; name: string; fields: Array; aggregates: Array; columns: Array; fieldAliases: Array; conditions: string; orderby: string; widgetId: string; onDemand: Array<{ enabled: boolean; extractionState: string; dashboardWidgetQueryId: number; }>; isHidden: boolean; selectedAggregate: number | null; linkedDashboards: Array<{ field: string; dashboardId: number; }>; }>; limit: number | null; widgetType: string | null; layout: { [key: string]: number; } | null; axisRange: string | null; legendType: 'default' | 'breakdown' | null; datasetSource: string | null; exploreUrls: Array | null; changedReason: Array<{ orderby: Array<{ [key: string]: string; }> | null; equations: Array<{ [key: string]: string | Array; }> | null; selected_columns: Array; }> | null; }>; projects: Array; filters: { release?: Array; releaseId?: Array; globalFilter?: Array<{ [key: string]: unknown; }>; }; permissions: { isEditableByEveryone: boolean; teamsWithEditAccess: Array; } | null; isFavorited: boolean; prebuiltId: number | null; }; }; export type GetOrganizationDashboardResponse = GetOrganizationDashboardResponses[keyof GetOrganizationDashboardResponses]; export type UpdateOrganizationDashboardData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body?: { /** * A dashboard's unique id. */ id?: string; /** * The user-defined dashboard title. */ title?: string; /** * A json list of widgets saved in this dashboard. */ widgets?: Array<{ id?: string; title?: string; description?: string | null; thresholds?: { [key: string]: unknown; } | null; /** * * `line` * * `area` * * `bar` * * `table` * * `big_number` * * `details` * * `categorical_bar` * * `wheel` * * `rage_and_dead_clicks` * * `server_tree` * * `text` * * `agents_traces_table` * * `heatmap` */ display_type?: 'line' | 'area' | 'bar' | 'table' | 'big_number' | 'details' | 'categorical_bar' | 'wheel' | 'rage_and_dead_clicks' | 'server_tree' | 'text' | 'agents_traces_table' | 'heatmap'; interval?: string; queries?: Array<{ id?: string; fields?: Array; aggregates?: Array | null; columns?: Array | null; field_aliases?: Array | null; name?: string; conditions?: string; orderby?: string; is_hidden?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ on_demand_extraction?: { extraction_state?: string; enabled?: boolean; }; on_demand_extraction_disabled?: boolean; selected_aggregate?: number | null; linked_dashboards?: Array<{ field: string; dashboard_id: string; }> | null; }>; /** * * `discover` * * `issue` * * `metrics` * * `error-events` * * `transaction-like` * * `spans` * * `logs` * * `tracemetrics` * * `preprod-app-size` */ widget_type?: 'discover' | 'issue' | 'metrics' | 'error-events' | 'transaction-like' | 'spans' | 'logs' | 'tracemetrics' | 'preprod-app-size' | null; limit?: number | null; /** * Widget grid layout position and dimensions. * * The dashboard uses a 6-column grid. Required keys: x, y, w, h, minH. * Constraints: x (0-5), y (>= 0), w (1-6), h (>= 1), minH (>= 1), and x + w <= 6. */ layout?: { /** * Column position (0-indexed). */ x: number; /** * Row position (0-indexed). */ y: number; /** * Width in grid columns (1-6). */ w: number; /** * Height in grid rows. */ h: number; /** * Minimum height in grid rows. */ min_h: number; } | null; /** * * `auto` * * `dataMin` */ axis_range?: 'auto' | 'dataMin' | null; /** * * `default` * * `breakdown` */ legend_type?: 'default' | 'breakdown' | null; }>; /** * The saved projects filter for this dashboard. */ projects?: Array; /** * The saved environment filter for this dashboard. */ environment?: Array | null; /** * The saved time range period for this dashboard. */ period?: string | null; /** * The saved start time for this dashboard. */ start?: string | null; /** * The saved end time for this dashboard. */ end?: string | null; /** * The saved filters for this dashboard. */ filters?: { [key: string]: unknown; }; /** * Setting that lets you display saved time range for this dashboard in UTC. */ utc?: boolean; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ permissions?: { /** * Whether the dashboard is editable by everyone. */ is_editable_by_everyone: boolean; /** * List of team IDs that have edit access to a dashboard. */ teams_with_edit_access?: Array; } | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the dashboard you'd like to retrieve. */ dashboard_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/dashboards/{dashboard_id}/'; }; export type UpdateOrganizationDashboardErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationDashboardResponses = { 200: { environment?: Array; period?: string; utc?: string; expired?: boolean; start?: string; end?: string; id: string; title: string; dateCreated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; widgets: Array<{ id: string; title: string; description: string | null; displayType: string; thresholds: { preferredPolarity?: string; max_values: { [key: string]: number; }; unit: string; } | null; interval: string; dateCreated: string; dashboardId: string; queries: Array<{ id: string; name: string; fields: Array; aggregates: Array; columns: Array; fieldAliases: Array; conditions: string; orderby: string; widgetId: string; onDemand: Array<{ enabled: boolean; extractionState: string; dashboardWidgetQueryId: number; }>; isHidden: boolean; selectedAggregate: number | null; linkedDashboards: Array<{ field: string; dashboardId: number; }>; }>; limit: number | null; widgetType: string | null; layout: { [key: string]: number; } | null; axisRange: string | null; legendType: 'default' | 'breakdown' | null; datasetSource: string | null; exploreUrls: Array | null; changedReason: Array<{ orderby: Array<{ [key: string]: string; }> | null; equations: Array<{ [key: string]: string | Array; }> | null; selected_columns: Array; }> | null; }>; projects: Array; filters: { release?: Array; releaseId?: Array; globalFilter?: Array<{ [key: string]: unknown; }>; }; permissions: { isEditableByEveryone: boolean; teamsWithEditAccess: Array; } | null; isFavorited: boolean; prebuiltId: number | null; }; }; export type UpdateOrganizationDashboardResponse = UpdateOrganizationDashboardResponses[keyof UpdateOrganizationDashboardResponses]; export type DeleteOrganizationDetectorsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * An optional search query for filtering monitors. * * Available fields are: * - `name` * - `type`: e.g. `error`, `metric_issue`, `issue_stream` * - `assignee`: email, username, #team, me, none * */ query?: string; /** * The property to sort results by. If not specified, the results are sorted by id. * * Available fields are: * - `name` * - `id` * - `type` * - `connectedWorkflows` * - `latestGroup` * - `openIssues` * * Prefix with `-` to sort in descending order. * */ sortBy?: string; /** * The ID of the monitor you'd like to query. */ id?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/detectors/'; }; export type DeleteOrganizationDetectorsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationDetectorsResponses = { /** * Success */ 200: unknown; /** * No Content */ 204: void; }; export type DeleteOrganizationDetectorsResponse = DeleteOrganizationDetectorsResponses[keyof DeleteOrganizationDetectorsResponses]; export type ListOrganizationDetectorsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * An optional search query for filtering monitors. * * Available fields are: * - `name` * - `type`: e.g. `error`, `metric_issue`, `issue_stream` * - `assignee`: email, username, #team, me, none * */ query?: string; /** * The property to sort results by. If not specified, the results are sorted by id. * * Available fields are: * - `name` * - `id` * - `type` * - `connectedWorkflows` * - `latestGroup` * - `openIssues` * * Prefix with `-` to sort in descending order. * */ sortBy?: string; /** * The ID of the monitor you'd like to query. */ id?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/detectors/'; }; export type ListOrganizationDetectorsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationDetectorsResponses = { 200: Array<{ owner?: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; createdBy?: string | null; latestGroup?: { [key: string]: unknown; } | null; description?: string | null; id: string; projectId: string | null; name: string; type: string; workflowIds: Array | null; dateCreated: string; dateUpdated: string; dataSources: Array<{ [key: string]: unknown; }> | null; conditionGroup: { [key: string]: unknown; } | null; config: { [key: string]: unknown; }; enabled: boolean; }>; }; export type ListOrganizationDetectorsResponse = ListOrganizationDetectorsResponses[keyof ListOrganizationDetectorsResponses]; export type UpdateOrganizationDetectorsData = { body: { /** * Whether to enable or disable the monitors */ enabled: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * An optional search query for filtering monitors. * * Available fields are: * - `name` * - `type`: e.g. `error`, `metric_issue`, `issue_stream` * - `assignee`: email, username, #team, me, none * */ query?: string; /** * The ID of the monitor you'd like to query. */ id?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/detectors/'; }; export type UpdateOrganizationDetectorsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationDetectorsResponses = { 200: Array<{ owner?: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; createdBy?: string | null; latestGroup?: { [key: string]: unknown; } | null; description?: string | null; id: string; projectId: string | null; name: string; type: string; workflowIds: Array | null; dateCreated: string; dateUpdated: string; dataSources: Array<{ [key: string]: unknown; }> | null; conditionGroup: { [key: string]: unknown; } | null; config: { [key: string]: unknown; }; enabled: boolean; }>; }; export type UpdateOrganizationDetectorsResponse = UpdateOrganizationDetectorsResponses[keyof UpdateOrganizationDetectorsResponses]; export type DeleteOrganizationDetectorData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the monitor you'd like to query. */ detector_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/detectors/{detector_id}/'; }; export type DeleteOrganizationDetectorErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationDetectorResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationDetectorResponse = DeleteOrganizationDetectorResponses[keyof DeleteOrganizationDetectorResponses]; export type GetOrganizationDetectorData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the monitor you'd like to query. */ detector_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/detectors/{detector_id}/'; }; export type GetOrganizationDetectorErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationDetectorResponses = { 200: { owner?: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; createdBy?: string | null; latestGroup?: { [key: string]: unknown; } | null; description?: string | null; id: string; projectId: string | null; name: string; type: string; workflowIds: Array | null; dateCreated: string; dateUpdated: string; dataSources: Array<{ [key: string]: unknown; }> | null; conditionGroup: { [key: string]: unknown; } | null; config: { [key: string]: unknown; }; enabled: boolean; }; }; export type GetOrganizationDetectorResponse = GetOrganizationDetectorResponses[keyof GetOrganizationDetectorResponses]; export type UpdateOrganizationDetectorData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * Name of the monitor. */ name: string; /** * The type of monitor - `metric_issue`. */ type: string; /** * The IDs of the alerts to connect this monitor to. Use the 'Fetch Alerts' endpoint to find the IDs. */ workflow_ids?: Array; /** * * The data sources for the monitor to use based on what you want to measure. * * **Number of Errors Metric Monitor** * - `eventTypes`: Any of `error` or `default`. * ```json * [ * { * "aggregate": "count()", * "dataset" : "events", * "environment": "prod", * "eventTypes": ["default", "error"], * "query": "is:unresolved", * "queryType": 0, * "timeWindow": 3600, * }, * ], * ``` * * **Users Experiencing Errors Metric Monitor** * - `eventTypes`: Any of `error` or `default`. * ```json * [ * { * "aggregate": "count_unique(tags[sentry:user])", * "dataset" : "events", * "environment": "prod", * "eventTypes": ["default", "error"], * "query": "is:unresolved", * "queryType": 0, * "timeWindow": 3600, * }, * ], * ``` * * * **Throughput Metric Monitor** * ```json * [ * { * "aggregate":"count(span.duration)", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Duration Metric Monitor** * ```json * [ * { * "aggregate":"p95(span.duration)", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Failure Rate Metric Monitor** * ```json * [ * { * "aggregate":"failure_rate()", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Largest Contentful Paint Metric Monitor** * - `dataset`: If a custom percentile is used, dataset is `transactions`. Otherwise, dataset is `events_analytics_platform`. * - `aggregate`: Valid values are `avg(measurements.lcp)`, `p50(measurements.lcp)`, `p75(measurements.lcp)`, `p95(measurements.lcp)`, `p99(measurements.lcp)`, `p100(measurements.lcp)`, and `percentile(measurements.lcp,x)`, where `x` is your custom percentile. * * ```json * [ * { * "aggregate":"p95(measurements.lcp)", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Custom Metric Monitor** * - `dataset`: If a custom percentile is used, dataset is `transactions`. Otherwise, dataset is `events_analytics_platform`. * - `aggregate`: Valid values are: * `avg(x)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p50(x)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p75(x)`, where x is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p95(x)`, where x is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p99(x)`, where x is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p100(x)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `percentile(x,y)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`, and `y` is the custom percentile. * `failure_rate()` * `apdex(x)`, where `x` is the value of the Apdex score. * `count()` * * ```json * [ * { * "aggregate": "p75(measurements.ttfb)" * "dataset": "events_analytics_platform", * "queryType": 1, * }, * ], * */ data_sources?: Array; /** * * The issue detection type configuration. * * * - `detectionType` * - `static`: Threshold based monitor * - `percent`: Change based monitor * - `dynamic`: Dynamic monitor * - `comparisonDelta`: If selecting a **change** detection type, the comparison delta is the time period at which to compare against in minutes. * For example, a value of 3600 compares the metric tracked against data 1 hour ago. * - `300`: 5 minutes * - `900`: 15 minutes * - `3600`: 1 hour * - `86400`: 1 day * - `604800`: 1 week * - `2592000`: 1 month * * **Threshold** * ```json * { * "detectionType": "static", * } * ``` * **Change** * ```json * { * "detectionType": "percent", * "comparisonDelta": 3600, * } * ``` * **Dynamic** * ```json * { * "detectionType": "dynamic", * } * ``` * */ config?: { [key: string]: unknown; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ condition_group?: { id?: number; /** * * `any` * * `any-short` * * `all` * * `none` */ logic_type: 'any' | 'any-short' | 'all' | 'none'; conditions?: Array; }; /** * * The ID user or team who owns the monitor or alert prefaced by the string 'user' or 'team'. * * **User** * ```json * "user:123456" * ``` * * **Team** * ```json * "team:456789" * ``` * */ owner?: string | null; /** * A description of the monitor. Will be used in the resulting issue. */ description?: string | null; /** * Set to False if you want to disable the monitor. */ enabled?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the monitor you'd like to query. */ detector_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/detectors/{detector_id}/'; }; export type UpdateOrganizationDetectorErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationDetectorResponses = { 200: { owner?: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; createdBy?: string | null; latestGroup?: { [key: string]: unknown; } | null; description?: string | null; id: string; projectId: string | null; name: string; type: string; workflowIds: Array | null; dateCreated: string; dateUpdated: string; dataSources: Array<{ [key: string]: unknown; }> | null; conditionGroup: { [key: string]: unknown; } | null; config: { [key: string]: unknown; }; enabled: boolean; }; }; export type UpdateOrganizationDetectorResponse = UpdateOrganizationDetectorResponses[keyof UpdateOrganizationDetectorResponses]; export type ListOrganizationDiscoverSavedQueriesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * The name of the Discover query you'd like to filter by. */ query?: string; /** * The property to sort results by. If not specified, the results are sorted by query name. * * Available fields are: * - `name` * - `dateCreated` * - `dateUpdated` * - `mostPopular` * - `recentlyViewed` * - `myqueries` * */ sortBy?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/discover/saved/'; }; export type ListOrganizationDiscoverSavedQueriesErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationDiscoverSavedQueriesResponses = { 200: Array<{ environment?: Array; query?: string; fields?: Array; widths?: Array; conditions?: Array; aggregations?: Array; range?: string; start?: string; end?: string; orderby?: string; limit?: string; yAxis?: Array; display?: string; topEvents?: number; interval?: string; exploreQuery?: { [key: string]: unknown; }; id: string; name: string; projects: Array; version: number; queryDataset: string; datasetSource: string; expired: boolean; dateCreated: string; dateUpdated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; }>; }; export type ListOrganizationDiscoverSavedQueriesResponse = ListOrganizationDiscoverSavedQueriesResponses[keyof ListOrganizationDiscoverSavedQueriesResponses]; export type CreateOrganizationDiscoverSavedQueryData = { body: { /** * The user-defined saved query name. */ name: string; /** * The saved projects filter for this query. */ projects?: Array; /** * The dataset you would like to query. Note: `discover` is a **deprecated** value. The allowed values are: `error-events`, `transaction-like` * * * `discover` * * `error-events` * * `transaction-like` */ queryDataset?: 'discover' | 'error-events' | 'transaction-like'; /** * The saved start time for this saved query. */ start?: string | null; /** * The saved end time for this saved query. */ end?: string | null; /** * The saved time range period for this saved query. */ range?: string | null; /** * The fields, functions, or equations that can be requested for the query. At most 20 fields can be selected per request. Each field can be one of the following types: * - A built-in key field. See possible fields in the [properties table](/product/sentry-basics/search/searchable-properties/#properties-table), under any field that is an event property. * - example: `field=transaction` * - A tag. Tags should use the `tag[]` formatting to avoid ambiguity with any fields * - example: `field=tag[isEnterprise]` * - A function which will be in the format of `function_name(parameters,...)`. See possible functions in the [query builder documentation](/product/discover-queries/query-builder/#stacking-functions). * - when a function is included, Discover will group by any tags or fields * - example: `field=count_if(transaction.duration,greater,300)` * - An equation when prefixed with `equation|`. Read more about [equations here](/product/discover-queries/query-builder/query-equations/). * - example: `field=equation|count_if(transaction.duration,greater,300) / count() * 100` * */ fields?: Array | null; /** * How to order the query results. Must be something in the `field` list, excluding equations. */ orderby?: string | null; /** * The name of environments to filter by. */ environment?: Array | null; /** * Filters results by using [query syntax](/product/sentry-basics/search/). */ query?: string | null; /** * Aggregate functions to be plotted on the chart. */ yAxis?: Array | null; /** * Visualization type for saved query chart. Allowed values are: * - default * - previous * - top5 * - daily * - dailytop5 * - bar * */ display?: string | null; /** * Number of top events' timeseries to be visualized. */ topEvents?: number | null; /** * Resolution of the time series. */ interval?: string | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/discover/saved/'; }; export type CreateOrganizationDiscoverSavedQueryErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type CreateOrganizationDiscoverSavedQueryResponses = { 201: { environment?: Array; query?: string; fields?: Array; widths?: Array; conditions?: Array; aggregations?: Array; range?: string; start?: string; end?: string; orderby?: string; limit?: string; yAxis?: Array; display?: string; topEvents?: number; interval?: string; exploreQuery?: { [key: string]: unknown; }; id: string; name: string; projects: Array; version: number; queryDataset: string; datasetSource: string; expired: boolean; dateCreated: string; dateUpdated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; }; }; export type CreateOrganizationDiscoverSavedQueryResponse = CreateOrganizationDiscoverSavedQueryResponses[keyof CreateOrganizationDiscoverSavedQueryResponses]; export type DeleteOrganizationDiscoverSavedQueryData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the Discover query you'd like to retrieve. */ query_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/discover/saved/{query_id}/'; }; export type DeleteOrganizationDiscoverSavedQueryErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationDiscoverSavedQueryResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationDiscoverSavedQueryResponse = DeleteOrganizationDiscoverSavedQueryResponses[keyof DeleteOrganizationDiscoverSavedQueryResponses]; export type GetOrganizationDiscoverSavedQueryData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the Discover query you'd like to retrieve. */ query_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/discover/saved/{query_id}/'; }; export type GetOrganizationDiscoverSavedQueryErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationDiscoverSavedQueryResponses = { 200: { environment?: Array; query?: string; fields?: Array; widths?: Array; conditions?: Array; aggregations?: Array; range?: string; start?: string; end?: string; orderby?: string; limit?: string; yAxis?: Array; display?: string; topEvents?: number; interval?: string; exploreQuery?: { [key: string]: unknown; }; id: string; name: string; projects: Array; version: number; queryDataset: string; datasetSource: string; expired: boolean; dateCreated: string; dateUpdated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; }; }; export type GetOrganizationDiscoverSavedQueryResponse = GetOrganizationDiscoverSavedQueryResponses[keyof GetOrganizationDiscoverSavedQueryResponses]; export type UpdateOrganizationDiscoverSavedQueryData = { body: { /** * The user-defined saved query name. */ name: string; /** * The saved projects filter for this query. */ projects?: Array; /** * The dataset you would like to query. Note: `discover` is a **deprecated** value. The allowed values are: `error-events`, `transaction-like` * * * `discover` * * `error-events` * * `transaction-like` */ queryDataset?: 'discover' | 'error-events' | 'transaction-like'; /** * The saved start time for this saved query. */ start?: string | null; /** * The saved end time for this saved query. */ end?: string | null; /** * The saved time range period for this saved query. */ range?: string | null; /** * The fields, functions, or equations that can be requested for the query. At most 20 fields can be selected per request. Each field can be one of the following types: * - A built-in key field. See possible fields in the [properties table](/product/sentry-basics/search/searchable-properties/#properties-table), under any field that is an event property. * - example: `field=transaction` * - A tag. Tags should use the `tag[]` formatting to avoid ambiguity with any fields * - example: `field=tag[isEnterprise]` * - A function which will be in the format of `function_name(parameters,...)`. See possible functions in the [query builder documentation](/product/discover-queries/query-builder/#stacking-functions). * - when a function is included, Discover will group by any tags or fields * - example: `field=count_if(transaction.duration,greater,300)` * - An equation when prefixed with `equation|`. Read more about [equations here](/product/discover-queries/query-builder/query-equations/). * - example: `field=equation|count_if(transaction.duration,greater,300) / count() * 100` * */ fields?: Array | null; /** * How to order the query results. Must be something in the `field` list, excluding equations. */ orderby?: string | null; /** * The name of environments to filter by. */ environment?: Array | null; /** * Filters results by using [query syntax](/product/sentry-basics/search/). */ query?: string | null; /** * Aggregate functions to be plotted on the chart. */ yAxis?: Array | null; /** * Visualization type for saved query chart. Allowed values are: * - default * - previous * - top5 * - daily * - dailytop5 * - bar * */ display?: string | null; /** * Number of top events' timeseries to be visualized. */ topEvents?: number | null; /** * Resolution of the time series. */ interval?: string | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the Discover query you'd like to retrieve. */ query_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/discover/saved/{query_id}/'; }; export type UpdateOrganizationDiscoverSavedQueryErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationDiscoverSavedQueryResponses = { 200: { environment?: Array; query?: string; fields?: Array; widths?: Array; conditions?: Array; aggregations?: Array; range?: string; start?: string; end?: string; orderby?: string; limit?: string; yAxis?: Array; display?: string; topEvents?: number; interval?: string; exploreQuery?: { [key: string]: unknown; }; id: string; name: string; projects: Array; version: number; queryDataset: string; datasetSource: string; expired: boolean; dateCreated: string; dateUpdated: string; createdBy: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; }; }; export type UpdateOrganizationDiscoverSavedQueryResponse = UpdateOrganizationDiscoverSavedQueryResponses[keyof UpdateOrganizationDiscoverSavedQueryResponses]; export type ListOrganizationEnvironmentsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The visibility of the environments to filter by. Defaults to `visible`. */ visibility?: 'all' | 'hidden' | 'visible'; }; url: '/api/0/organizations/{organization_id_or_slug}/environments/'; }; export type ListOrganizationEnvironmentsErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type ListOrganizationEnvironmentsResponses = { 200: Array<{ id: string; name: string; }>; }; export type ListOrganizationEnvironmentsResponse = ListOrganizationEnvironmentsResponses[keyof ListOrganizationEnvironmentsResponses]; export type ResolveOrganizationEventIdData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The event ID to look up. */ event_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/eventids/{event_id}/'; }; export type ResolveOrganizationEventIdErrors = { /** * Not Found */ 404: unknown; }; export type ResolveOrganizationEventIdResponses = { 200: { organizationSlug: string; projectSlug: string; groupId: string; eventId: string; event: { id: string; groupID: string | null; eventID: string; projectID: string; message: string | null; title: string; location: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string; dateReceived: string | null; contexts: { [key: string]: unknown; } | null; size: number | null; entries: Array; dist: string | null; sdk: { name: string | null; version: string | null; } | null; context: { [key: string]: unknown; } | null; packages: { [key: string]: unknown; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; metadata: { [key: string]: unknown; }; errors: Array<{ type: string; message: string; data: { [key: string]: unknown; }; }>; occurrence: { id: string; projectId: number; eventId: string; fingerprint: Array; issueTitle: string; subtitle: string; resourceId: string | null; evidenceData: { [key: string]: unknown; }; evidenceDisplay: Array<{ name: string; value: string; important: boolean; }>; type: number; detectionTime: number; level: string | null; culprit: string | null; assignee: string | null; priority: number | null; } | null; _meta: { [key: string]: unknown; }; crashFile?: string | null; culprit?: string | null; dateCreated?: string; fingerprints?: Array; groupingConfig?: { id: string; enhancements: string; }; startTimestamp?: number; endTimestamp?: number; measurements?: { [key: string]: { value: number; unit: string | null; }; } | null; breakdowns?: { [key: string]: { [key: string]: { value: number; unit: string | null; }; }; } | null; }; }; }; export type ResolveOrganizationEventIdResponse = ResolveOrganizationEventIdResponses[keyof ResolveOrganizationEventIdResponses]; export type ListOrganizationEventsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * The fields, functions, or equations to request for the query. At most 20 fields can be selected per request. Each field can be one of the following types: * - A built-in key field. See possible fields in the [properties table](/concepts/search/searchable-properties/), under any field that matches the dataset passed to the dataset parameter * - example: `field=transaction` * - A tag. Tags should use the `tag[{name}, {type}]` formatting to avoid ambiguity with any fields, * - example: `field=tag[isEnterprise, string]` * - example: `field=tag[numberOfBytes, number]` * - A function which will be in the format of `function_name(parameters,...)`. See possible functions in the [query builder documentation](/product/discover-queries/query-builder/#stacking-functions). * - when a function is included, Discover will group by any tags or fields * - example: `field=count_if(transaction.duration,greater,300)` * - An equation when prefixed with `equation|`. Read more about [equations here](/product/discover-queries/query-builder/query-equations/). * - example: `field=equation|count_if(transaction.duration,greater,300) / count() * 100` * */ field: Array; /** * Which dataset to query. The chosen dataset determines which fields are queryable. * - `errors` - Error events. * - `logs` - Structured log events. * - `profile_functions` - Function-level Profiling data. * - `spans` - Distributed tracing span events. * - `tracemetrics` - Application Metrics. * - `uptime_results` - Uptime monitoring check results. * */ dataset: 'errors' | 'logs' | 'profile_functions' | 'spans' | 'tracemetrics' | 'uptime_results'; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * The name of environments to filter by. */ environment?: Array; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * Filters results by using [query syntax](/product/sentry-basics/search/). * * Example: `query=(transaction:foo AND release:abc) OR (transaction:[bar,baz] AND release:def)` * */ query?: string; /** * What to order the results of the query by. Must be something in the `field` list, excluding equations. */ sort?: string; /** * If false, aggregate conditions in the query string are disallowed. Defaults to true. */ allowAggregateConditions?: boolean; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/events/'; }; export type ListOrganizationEventsErrors = { /** * Invalid Query */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type ListOrganizationEventsResponses = { 200: { data: Array<{ [key: string]: unknown; }>; /** * Meta envelope emitted by `handle_results_with_meta` and the * empty-projects short-circuit. Every key is optional because the path * that emits it depends on flags (`standard_meta`, debug, dataset) — the * no-projects path only carries `tips`, the standard path carries * everything below. */ meta: { fields?: { [key: string]: string; }; units?: { [key: string]: string | null; }; tips?: { [key: string]: string; }; datasetReason?: string; isMetricsData?: boolean; isMetricsExtractedData?: boolean; dataset?: string; discoverSplitDecision?: unknown; dataScanned?: string; bytesScanned?: number; debug_info?: unknown; }; }; }; export type ListOrganizationEventsResponse = ListOrganizationEventsResponses[keyof ListOrganizationEventsResponses]; export type ListOrganizationEventsTimeseriesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * Which dataset to query. The chosen dataset determines which fields are queryable. * - `errors` - Error events. * - `logs` - Structured log events. * - `profile_functions` - Function-level Profiling data. * - `spans` - Distributed tracing span events. * - `tracemetrics` - Application Metrics. * - `uptime_results` - Uptime monitoring check results. * */ dataset: 'errors' | 'logs' | 'profile_functions' | 'spans' | 'tracemetrics' | 'uptime_results'; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * The name of environments to filter by. */ environment?: Array; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The number of top event results to return, must be between 1 and 10. * When TopEvents is passed, both sort and groupBy are required parameters */ topEvents?: number; /** * The delta in seconds to return additional offset timeseries by */ comparisonDelta?: number; /** * The size of the bucket for the timeseries to have, must be a value smaller than the window being * queried. If the interval is invalid a default interval will be selected instead */ interval?: number; /** * What to order the results of the query by. Must be something in the `field` list, excluding equations. */ sort?: string; /** * List of fields to group by, *Required* for topEvents queries as this and sort determine what the * top events are */ groupBy?: Array; /** * The aggregate field to create the timeseries for, defaults to `count()` when * not included. * - `count()` - Total count of events over the period. * - `avg(field)` - Average value of the field over the period. * - `pXX(field)` - Percentile value of the field over the period. One of: `p50`, `p75`, `p90`, `p95`, `p99`, `p100`. * - `sum(field)` - Sum of all values for the field over the period. * - `min(field)` - Lowest value observed for the field over the period. * - `max(field)` - Highest value observed for the field over the period. * - `count_unique(field)` - Count of unique values observed for the field over the period. See *Note:* regarding accuracy on sampled data. * - `epm` - Average number of events received per minute. * - `eps` - Average number of events received per second. * - `failure_rate()` - Percentage of events whose `status` indicates failure. * - `failure_count()` - Total count of events with an error `status` over period. * - `performance_score(field)` - Web Vitals performance score for the selected measurement. * - `opportunity_score(field)` - Web Vitals opportunity score for the selected measurement. * */ yAxis?: string; /** * Filters results by using [query syntax](/product/sentry-basics/search/). * * Example: `query=(transaction:foo AND release:abc) OR (transaction:[bar,baz] AND release:def)` * */ query?: string; /** * Whether to disable the use of extrapolation and return the sampled values, due to sampling the * number returned may be less than the actual values sent to Sentry */ disableAggregateExtrapolation?: '0' | '1'; /** * Whether to throw an error when aggregates are passed in the query or groupBy */ preventMetricAggregates?: '0' | '1'; /** * Only applicable with TopEvents, whether to include the 'other' timeseries which represents all the * events that aren't in the top groups. */ excludeOther?: '0' | '1'; }; url: '/api/0/organizations/{organization_id_or_slug}/events-timeseries/'; }; export type ListOrganizationEventsTimeseriesErrors = { /** * Invalid Query */ 400: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationEventsTimeseriesResponses = { 200: { meta?: { dataset: string; start: number; end: number; }; timeSeries: Array<{ values: Array<{ timestamp: number; value: number; incomplete: boolean; comparisonValue?: number; sampleCount?: number; sampleRate?: number | null; confidence?: 'low' | 'high' | null; incompleteReason?: string; }>; yAxis: string; groupBy?: Array<{ key: string; value: string | number | { [key: string]: unknown; } | null; }>; meta: { order?: number; isOther?: boolean; valueUnit: string | null; dataScanned?: 'partial' | 'full'; valueType: string; interval: number; }; }>; }; }; export type ListOrganizationEventsTimeseriesResponse = ListOrganizationEventsTimeseriesResponses[keyof ListOrganizationEventsTimeseriesResponses]; export type CreateOrganizationExternalUserData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The user ID in Sentry. */ user_id: number; /** * The associated name for the provider. */ external_name: string; /** * The provider of the external actor. * * * `github` * * `github_enterprise` * * `jira_server` * * `slack` * * `slack_staging` * * `perforce` * * `gitlab` * * `msteams` * * `custom_scm` */ provider: 'github' | 'github_enterprise' | 'jira_server' | 'slack' | 'slack_staging' | 'perforce' | 'gitlab' | 'msteams' | 'custom_scm'; /** * The Integration ID. */ integration_id: number; /** * The external actor ID. */ readonly id: number; /** * The associated user ID for provider. */ external_id?: string | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/external-users/'; }; export type CreateOrganizationExternalUserErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type CreateOrganizationExternalUserResponses = { 200: { externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }; 201: { externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }; }; export type CreateOrganizationExternalUserResponse = CreateOrganizationExternalUserResponses[keyof CreateOrganizationExternalUserResponses]; export type DeleteOrganizationExternalUserData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the external user object. This is returned when creating an external user. */ external_user_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/external-users/{external_user_id}/'; }; export type DeleteOrganizationExternalUserErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type DeleteOrganizationExternalUserResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationExternalUserResponse = DeleteOrganizationExternalUserResponses[keyof DeleteOrganizationExternalUserResponses]; export type UpdateOrganizationExternalUserData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The user ID in Sentry. */ user_id: number; /** * The associated name for the provider. */ external_name: string; /** * The provider of the external actor. * * * `github` * * `github_enterprise` * * `jira_server` * * `slack` * * `slack_staging` * * `perforce` * * `gitlab` * * `msteams` * * `custom_scm` */ provider: 'github' | 'github_enterprise' | 'jira_server' | 'slack' | 'slack_staging' | 'perforce' | 'gitlab' | 'msteams' | 'custom_scm'; /** * The Integration ID. */ integration_id: number; /** * The external actor ID. */ readonly id: number; /** * The associated user ID for provider. */ external_id?: string | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the external user object. This is returned when creating an external user. */ external_user_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/external-users/{external_user_id}/'; }; export type UpdateOrganizationExternalUserErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type UpdateOrganizationExternalUserResponses = { 200: { externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }; }; export type UpdateOrganizationExternalUserResponse = UpdateOrganizationExternalUserResponses[keyof UpdateOrganizationExternalUserResponses]; export type ListOrganizationForwardingData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/forwarding/'; }; export type ListOrganizationForwardingResponses = { 200: Array<{ id: string; organizationId: string; isEnabled: boolean; enrollNewProjects: boolean; enrolledProjects: Array<{ id: string; slug: string; platform: string | null; }>; provider: string; config: { [key: string]: string; } | null; projectConfigs: Array<{ id: string; isEnabled: boolean; dataForwarderId: string; project: { id: string; slug: string; platform: string | null; }; overrides: { [key: string]: string; }; effectiveConfig: { [key: string]: string; }; dateAdded: string; dateUpdated: string; }>; dateAdded: string; dateUpdated: string; }>; }; export type ListOrganizationForwardingResponse = ListOrganizationForwardingResponses[keyof ListOrganizationForwardingResponses]; export type CreateOrganizationForwardingData = { body: { /** * The ID of the organization related to the data forwarder. */ organization_id: number; /** * The provider of the data forwarder. One of "segment", "sqs", or "splunk". * * * `segment` - Segment * * `sqs` - Amazon SQS * * `splunk` - Splunk */ provider: 'segment' | 'sqs' | 'splunk'; /** * Whether the data forwarder is enabled. */ is_enabled?: boolean; /** * Whether to enroll new projects automatically, after they're created. */ enroll_new_projects?: boolean; /** * The configuration for the data forwarder, specific to the provider type. * For a 'sqs' provider, the required keys are queue_url, region, access_key, secret_key. If using a FIFO queue, you must also provide a message_group_id, though s3_bucket is optional. * For a 'segment' provider, the required keys are write_key. * For a 'splunk' provider, the required keys are instance_url, index, source, token. */ config?: { [key: string]: string; }; /** * The IDs of the projects connected to the data forwarder. Missing project IDs will be unenrolled if previously enrolled. */ project_ids?: Array; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/forwarding/'; }; export type CreateOrganizationForwardingErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type CreateOrganizationForwardingResponses = { 201: { id: string; organizationId: string; isEnabled: boolean; enrollNewProjects: boolean; enrolledProjects: Array<{ id: string; slug: string; platform: string | null; }>; provider: string; config: { [key: string]: string; } | null; projectConfigs: Array<{ id: string; isEnabled: boolean; dataForwarderId: string; project: { id: string; slug: string; platform: string | null; }; overrides: { [key: string]: string; }; effectiveConfig: { [key: string]: string; }; dateAdded: string; dateUpdated: string; }>; dateAdded: string; dateUpdated: string; }; }; export type CreateOrganizationForwardingResponse = CreateOrganizationForwardingResponses[keyof CreateOrganizationForwardingResponses]; export type DeleteOrganizationForwardingData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the data forwarder you'd like to query. */ data_forwarder_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/forwarding/{data_forwarder_id}/'; }; export type DeleteOrganizationForwardingErrors = { /** * Forbidden */ 403: unknown; }; export type DeleteOrganizationForwardingResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationForwardingResponse = DeleteOrganizationForwardingResponses[keyof DeleteOrganizationForwardingResponses]; export type UpdateOrganizationForwardingData = { body: { /** * The ID of the organization related to the data forwarder. */ organization_id: number; /** * The provider of the data forwarder. One of "segment", "sqs", or "splunk". * * * `segment` - Segment * * `sqs` - Amazon SQS * * `splunk` - Splunk */ provider: 'segment' | 'sqs' | 'splunk'; /** * Whether the data forwarder is enabled. */ is_enabled?: boolean; /** * Whether to enroll new projects automatically, after they're created. */ enroll_new_projects?: boolean; /** * The configuration for the data forwarder, specific to the provider type. * For a 'sqs' provider, the required keys are queue_url, region, access_key, secret_key. If using a FIFO queue, you must also provide a message_group_id, though s3_bucket is optional. * For a 'segment' provider, the required keys are write_key. * For a 'splunk' provider, the required keys are instance_url, index, source, token. */ config?: { [key: string]: string; }; /** * The IDs of the projects connected to the data forwarder. Missing project IDs will be unenrolled if previously enrolled. */ project_ids?: Array; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the data forwarder you'd like to query. */ data_forwarder_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/forwarding/{data_forwarder_id}/'; }; export type UpdateOrganizationForwardingErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type UpdateOrganizationForwardingResponses = { 200: { id: string; organizationId: string; isEnabled: boolean; enrollNewProjects: boolean; enrolledProjects: Array<{ id: string; slug: string; platform: string | null; }>; provider: string; config: { [key: string]: string; } | null; projectConfigs: Array<{ id: string; isEnabled: boolean; dataForwarderId: string; project: { id: string; slug: string; platform: string | null; }; overrides: { [key: string]: string; }; effectiveConfig: { [key: string]: string; }; dateAdded: string; dateUpdated: string; }>; dateAdded: string; dateUpdated: string; }; }; export type UpdateOrganizationForwardingResponse = UpdateOrganizationForwardingResponses[keyof UpdateOrganizationForwardingResponses]; export type ListOrganizationIntegrationsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * Specific integration provider to filter by such as `slack`. See our [Integrations Documentation](/product/integrations/) for an updated list of providers. */ providerKey?: string; /** * Integration features to filter by. See our [Integrations Documentation](/product/integrations/) for an updated list of features. Current available ones are: * - `alert-rule` * - `chat-unfurl` * - `codeowners` * - `commits` * - `data-forwarding` * - `deployment` * - `enterprise-alert-rule` * - `enterprise-incident-management` * - `incident-management` * - `issue-basic` * - `issue-sync` * - `mobile` * - `serverless` * - `session-replay` * - `stacktrace-link` * - `ticket-rules` * */ features?: Array; /** * Specify `True` to fetch third-party integration configurations. Note that this can add several seconds to the response time. */ includeConfig?: boolean; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/integrations/'; }; export type ListOrganizationIntegrationsResponses = { 200: Array<{ id: string; name: string; icon: string | null; domainName: string | null; accountType: string | null; scopes: Array | null; outOfDate: boolean | null; status: string; provider: unknown; configOrganization: unknown; configData: unknown; externalId: string; organizationId: number; organizationIntegrationStatus: string; gracePeriodEnd: string | null; }>; }; export type ListOrganizationIntegrationsResponse = ListOrganizationIntegrationsResponses[keyof ListOrganizationIntegrationsResponses]; export type DeleteOrganizationIntegrationData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the integration installed on the organization. */ integration_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/integrations/{integration_id}/'; }; export type DeleteOrganizationIntegrationErrors = { /** * Not Found */ 404: unknown; }; export type DeleteOrganizationIntegrationResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationIntegrationResponse = DeleteOrganizationIntegrationResponses[keyof DeleteOrganizationIntegrationResponses]; export type GetOrganizationIntegrationData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the integration installed on the organization. */ integration_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/integrations/{integration_id}/'; }; export type GetOrganizationIntegrationResponses = { 200: { id: string; name: string; icon: string | null; domainName: string | null; accountType: string | null; scopes: Array | null; outOfDate: boolean | null; status: string; provider: unknown; configOrganization: unknown; configData: unknown; externalId: string; organizationId: number; organizationIntegrationStatus: string; gracePeriodEnd: string | null; }; }; export type GetOrganizationIntegrationResponse = GetOrganizationIntegrationResponses[keyof GetOrganizationIntegrationResponses]; export type DeleteOrganizationIssuesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The list of issue IDs to be removed. If not provided, it will attempt to remove the first 1000 issues. */ id?: Array; /** * An optional search query for filtering issues. A default query will apply if no view/query is set. For all results use this parameter with an empty string. */ query?: string; /** * The ID of the view to use. If no query is present, the view's query and filters will be applied. */ viewId?: string; /** * The sort order of the view. Options include 'Last Seen' (`date`), 'First Seen' (`new`), 'Trends' (`trends`), 'Events' (`freq`), 'Users' (`user`), 'Date Added' (`inbox`), and 'Recommended' (`recommended`). */ sort?: 'date' | 'freq' | 'inbox' | 'new' | 'recommended' | 'trends' | 'user'; /** * The maximum number of issues to affect. The maximum is 100. */ limit?: number; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/'; }; export type DeleteOrganizationIssuesErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationIssuesResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationIssuesResponse = DeleteOrganizationIssuesResponses[keyof DeleteOrganizationIssuesResponses]; export type ListOrganizationIssuesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * The timeline on which stats for the groups should be presented. */ groupStatsPeriod?: '' | '14d' | '24h' | 'auto'; /** * If this is set to `1` then the query will be parsed for issue short IDs. These may ignore other filters (e.g. projects), which is why it is an opt-in. */ shortIdLookup?: '0' | '1'; /** * An optional search query for filtering issues. A default query will apply if no view/query is set. For all results use this parameter with an empty string. */ query?: string; /** * The ID of the view to use. If no query is present, the view's query and filters will be applied. */ viewId?: string; /** * The sort order of the view. Options include 'Last Seen' (`date`), 'First Seen' (`new`), 'Trends' (`trends`), 'Events' (`freq`), 'Users' (`user`), 'Date Added' (`inbox`), and 'Recommended' (`recommended`). */ sort?: 'date' | 'freq' | 'inbox' | 'new' | 'recommended' | 'trends' | 'user'; /** * The maximum number of issues to affect. The maximum is 100. */ limit?: number; /** * Additional data to include in the response. */ expand?: Array<'inbox' | 'integrationIssues' | 'latestEventHasAttachments' | 'owners' | 'sentryAppIssues' | 'sessions'>; /** * Fields to remove from the response to improve query performance. */ collapse?: Array<'base' | 'filtered' | 'lifetime' | 'stats' | 'unhandled'>; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/'; }; export type ListOrganizationIssuesErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationIssuesResponses = { 200: Array<{ id: string; shareId: string | null; shortId: string; title: string; culprit: string | null; permalink: string; logger: string | null; level: 'sample' | 'debug' | 'info' | 'warning' | 'error' | 'fatal' | 'unknown'; status: 'resolved' | 'ignored' | 'pending_deletion' | 'pending_merge' | 'reprocessing' | 'unresolved'; statusDetails: { ignoreCount?: number; ignoreUntil?: string; ignoreUserCount?: number; ignoreUserWindow?: number; ignoreWindow?: number; actor?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; inNextRelease?: boolean; inRelease?: string; inCommit?: string; pendingEvents?: number; info?: { dateCreated: string; syncCount: number; totalEvents: number; } | null; }; substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; isPublic: boolean; platform: string | null; priority: 'low' | 'medium' | 'high' | null; priorityLockedAt: string | null; seerFixabilityScore: number | null; seerAutofixLastTriggered: string | null; seerExplorerAutofixLastTriggered: string | null; project: { id: string; name: string; slug: string; platform: string | null; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; issueType: string; issueCategory: string; metadata: { [key: string]: unknown; }; numComments: number; assignedTo: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; isBookmarked: boolean; isSubscribed: boolean; subscriptionDetails: { disabled?: boolean; reason?: string; } | null; hasSeen: boolean; annotations: Array<{ displayName: string; url: string; }>; isUnhandled: boolean; count: string; userCount: number; firstSeen: string | null; lastSeen: string | null; derivedData: { blocker: string; progress: string; status: string; viewCount: number; hasOpenFixPr: boolean; isAssigned: boolean; hasRootCause: boolean; lastCompletedAutofixStep: string; lastProgressedAt: string | null; }; stats: { [key: string]: unknown; }; lifetime: { [key: string]: unknown; }; filtered: { count: string; userCount: number; firstSeen: string | null; lastSeen: string | null; stats: { [key: string]: unknown; }; } | null; sessionCount: number; inbox: { reason: number; reason_details: { until: string | null; count: number | null; window: number | null; user_count: number | null; user_window: number | null; } | null; date_added: string; }; owners: { type: string; owner: string; date_added: string; }; integrationIssues: Array<{ [key: string]: unknown; }>; sentryAppIssues: Array<{ [key: string]: unknown; }>; latestEventHasAttachments: boolean; matchingEventId: string | null; matchingEventEnvironment: string | null; }>; }; export type ListOrganizationIssuesResponse = ListOrganizationIssuesResponses[keyof ListOrganizationIssuesResponses]; export type UpdateOrganizationIssuesData = { body: { /** * If true, marks the issue as reviewed by the requestor. */ inbox: boolean; /** * Limit mutations to only issues with the given status. * * * `resolved` * * `unresolved` * * `ignored` * * `resolvedInNextRelease` * * `muted` */ status: 'resolved' | 'unresolved' | 'ignored' | 'resolvedInNextRelease' | 'muted'; /** * Additional details about the resolution. Status detail updates that include release data are only allowed for issues within a single project. */ statusDetails: { /** * If true, marks the issue as resolved in the next release. */ inNextRelease: boolean; /** * The version of the release that the issue should be resolved in.If set to `latest`, the latest release will be used. */ inRelease: string; /** * The commit data that the issue should use for resolution. */ inCommit?: { /** * The SHA of the resolving commit. */ commit: string; /** * The name of the repository (as it appears in Sentry). */ repository: string; }; /** * Ignore the issue until for this many minutes. */ ignoreDuration: number; /** * Ignore the issue until it has occurred this many times in `ignoreWindow` minutes. */ ignoreCount: number; /** * Ignore the issue until it has occurred `ignoreCount` times in this many minutes. (Max: 1 week) */ ignoreWindow: number; /** * Ignore the issue until it has affected this many users in `ignoreUserWindow` minutes. */ ignoreUserCount: number; /** * Ignore the issue until it has affected `ignoreUserCount` users in this many minutes. (Max: 1 week) */ ignoreUserWindow: number; }; /** * The new substatus of the issue. * * * `archived_until_escalating` * * `archived_until_condition_met` * * `archived_forever` * * `escalating` * * `ongoing` * * `regressed` * * `new` */ substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; /** * If true, marks the issue as seen by the requestor. */ hasSeen: boolean; /** * If true, bookmarks the issue for the requestor. */ isBookmarked: boolean; /** * If true, publishes the issue. */ isPublic: boolean; /** * If true, subscribes the requestor to the issue. */ isSubscribed: boolean; /** * If true, merges the issues together. */ merge: boolean; /** * If true, discards the issues instead of updating them. */ discard: boolean; /** * The user or team that should be assigned to the issues. Values take the form of ``, `user:`, ``, ``, or `team:`. */ assignedTo: string; /** * The priority that should be set for the issues * * * `low` * * `medium` * * `high` */ priority: 'low' | 'medium' | 'high'; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The list of issue IDs to mutate. It is optional for status updates, in which an implicit `update all` is assumed. */ id?: Array; /** * An optional search query for filtering issues. A default query will apply if no view/query is set. For all results use this parameter with an empty string. */ query?: string; /** * The ID of the view to use. If no query is present, the view's query and filters will be applied. */ viewId?: string; /** * The sort order of the view. Options include 'Last Seen' (`date`), 'First Seen' (`new`), 'Trends' (`trends`), 'Events' (`freq`), 'Users' (`user`), 'Date Added' (`inbox`), and 'Recommended' (`recommended`). */ sort?: 'date' | 'freq' | 'inbox' | 'new' | 'recommended' | 'trends' | 'user'; /** * The maximum number of issues to affect. The maximum is 100. */ limit?: number; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/'; }; export type UpdateOrganizationIssuesErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationIssuesResponses = { 200: { assignedTo?: { type: 'user' | 'team'; id: string; name: string; email?: string; }; discard?: boolean; hasSeen?: boolean; inbox?: boolean; isBookmarked?: boolean; isPublic?: boolean; isSubscribed?: boolean; merge?: { parent: string; children: Array; }; priority?: string; shareId?: string; status?: string; statusDetails?: { inNextRelease?: boolean; inRelease?: string; inCommit?: { commit: string; repository: string; }; ignoreDuration?: number; ignoreCount?: number; ignoreWindow?: number; ignoreUserCount?: number; ignoreUserWindow?: number; }; subscriptionDetails?: { disabled?: boolean; reason?: string; }; substatus?: string; }; /** * No Content */ 204: void; }; export type UpdateOrganizationIssuesResponse = UpdateOrganizationIssuesResponses[keyof UpdateOrganizationIssuesResponses]; export type ListOrganizationMembersData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/members/'; }; export type ListOrganizationMembersErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationMembersResponses = { 200: Array<{ externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; }>; }; export type ListOrganizationMembersResponse = ListOrganizationMembersResponses[keyof ListOrganizationMembersResponses]; export type AddOrganizationMemberData = { body: { /** * The email address to send the invitation to. */ email: string; /** * The organization-level role of the new member. Roles include: * * * `billing` - Can manage payment and compliance details. * * `member` - Can view and act on events, as well as view most other data within the organization. * * `manager` - Has full management access to all teams and projects. Can also manage * the organization's membership. * * `owner` - Has unrestricted access to the organization, its data, and its * settings. Can add, modify, and delete projects and members, as well as * make billing and plan changes. * * `admin` - Can edit global integrations, manage projects, and add/remove teams. * They automatically assume the Team Admin role for teams they join. * Note: This role can no longer be assigned in Business and Enterprise plans. Use `TeamRoles` instead. * */ orgRole?: 'billing' | 'member' | 'manager' | 'owner' | 'admin'; /** * The team and team-roles assigned to the member. Team roles can be either: * - `contributor` - Can view and act on issues. Depending on organization settings, they can also add team members. * - `admin` - Has full management access to their team's membership and projects. */ teamRoles?: Array<{ [key: string]: unknown; }> | null; /** * Whether or not to send an invite notification through email. Defaults to True. */ sendInvite?: boolean; /** * Whether or not to re-invite a user who has already been invited to the organization. Defaults to True. */ reinvite?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/members/'; }; export type AddOrganizationMemberErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type AddOrganizationMemberResponses = { 201: { externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; }; }; export type AddOrganizationMemberResponse = AddOrganizationMemberResponses[keyof AddOrganizationMemberResponses]; export type DeleteOrganizationMemberData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the member to delete. */ member_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/members/{member_id}/'; }; export type DeleteOrganizationMemberErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationMemberResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationMemberResponse = DeleteOrganizationMemberResponses[keyof DeleteOrganizationMemberResponses]; export type GetOrganizationMemberData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the organization member. */ member_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/members/{member_id}/'; }; export type GetOrganizationMemberErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationMemberResponses = { 200: { externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; role?: string; roleName?: string; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; teams: Array; teamRoles: Array<{ teamSlug: string; role: string | null; }>; invite_link: string | null; isOnlyOwner: boolean; orgRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; is_global: boolean; isGlobal: boolean; minimumTeamRole: string; }>; teamRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; isMinimumRoleFor: string | null; }>; }; }; export type GetOrganizationMemberResponse = GetOrganizationMemberResponses[keyof GetOrganizationMemberResponses]; export type UpdateOrganizationMemberData = { body?: { /** * The organization role of the member. The options are: * * * `billing` - Can manage payment and compliance details. * * `member` - Can view and act on events, as well as view most other data within the organization. * * `manager` - Has full management access to all teams and projects. Can also manage * the organization's membership. * * `owner` - Has unrestricted access to the organization, its data, and its * settings. Can add, modify, and delete projects and members, as well as * make billing and plan changes. * * `admin` - Can edit global integrations, manage projects, and add/remove teams. * They automatically assume the Team Admin role for teams they join. * Note: This role can no longer be assigned in Business and Enterprise plans. Use `TeamRoles` instead. * */ orgRole?: 'billing' | 'member' | 'manager' | 'owner' | 'admin'; /** * * Configures the team role of the member. The two roles are: * - `contributor` - Can view and act on issues. Depending on organization settings, they can also add team members. * - `admin` - Has full management access to their team's membership and projects. * ```json * { * "teamRoles": [ * { * "teamSlug": "ancient-gabelers", * "role": "admin" * }, * { * "teamSlug": "powerful-abolitionist", * "role": "contributor" * } * ] * } * ``` * */ teamRoles?: Array<{ [key: string]: unknown; }> | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the member to update. */ member_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/members/{member_id}/'; }; export type UpdateOrganizationMemberErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; }; export type UpdateOrganizationMemberResponses = { 200: { externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; role?: string; roleName?: string; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; teams: Array; teamRoles: Array<{ teamSlug: string; role: string | null; }>; invite_link: string | null; isOnlyOwner: boolean; orgRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; is_global: boolean; isGlobal: boolean; minimumTeamRole: string; }>; teamRoleList: Array<{ id: string; name: string; desc: string; scopes: Array; allowed: boolean; isAllowed: boolean; isRetired: boolean; isTeamRolesAllowed: boolean; isMinimumRoleFor: string | null; }>; }; }; export type UpdateOrganizationMemberResponse = UpdateOrganizationMemberResponses[keyof UpdateOrganizationMemberResponses]; export type DeleteOrganizationMemberTeamData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the organization member to delete from the team */ member_id: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/members/{member_id}/teams/{team_id_or_slug}/'; }; export type DeleteOrganizationMemberTeamErrors = { /** * Bad Request */ 400: unknown; /** * This team is managed through your organization's identity provider */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationMemberTeamResponses = { 200: { id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; }; }; export type DeleteOrganizationMemberTeamResponse = DeleteOrganizationMemberTeamResponses[keyof DeleteOrganizationMemberTeamResponses]; export type AddOrganizationMemberTeamData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the organization member to add to the team */ member_id: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/members/{member_id}/teams/{team_id_or_slug}/'; }; export type AddOrganizationMemberTeamErrors = { /** * Unauthorized */ 401: unknown; /** * This team is managed through your organization's identity provider */ 403: unknown; /** * Not Found */ 404: unknown; }; export type AddOrganizationMemberTeamResponses = { 201: { id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; }; /** * Accepted */ 202: unknown; /** * No Content */ 204: void; }; export type AddOrganizationMemberTeamResponse = AddOrganizationMemberTeamResponses[keyof AddOrganizationMemberTeamResponses]; export type UpdateOrganizationMemberTeamData = { body?: { /** * The team-level role to switch to. Valid roles include: * * * `contributor` - Contributors can view and act on events, as well as view most other data within the team's projects. * * `admin` - Admin privileges on the team. They can create and remove projects, and can manage the team's memberships. */ teamRole?: 'contributor' | 'admin'; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the organization member to change */ member_id: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/members/{member_id}/teams/{team_id_or_slug}/'; }; export type UpdateOrganizationMemberTeamErrors = { /** * Bad Request */ 400: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationMemberTeamResponses = { 200: { isActive: boolean; teamRole: 'contributor' | 'admin'; }; }; export type UpdateOrganizationMemberTeamResponse = UpdateOrganizationMemberTeamResponses[keyof UpdateOrganizationMemberTeamResponses]; export type ListOrganizationMonitorsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The name of environments to filter by. */ environment?: Array; /** * The owner of the monitor, in the format `user:id` or `team:id`. May be specified multiple times. */ owner?: string; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/monitors/'; }; export type ListOrganizationMonitorsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationMonitorsResponses = { 200: Array<{ alertRule?: { targets: Array<{ targetIdentifier: number; targetType: string; }>; environment: string; }; id: string; name: string; slug: string; status: string; isMuted: boolean; isUpserting: boolean; config: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; dateCreated: string; project: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }; environments: { name: string; status: string; isMuted: boolean; dateCreated: string; lastCheckIn: string; nextCheckIn: string; nextCheckInLatest: string; activeIncident: { startingTimestamp: string; resolvingTimestamp: string; brokenNotice: { userNotifiedTimestamp: string; environmentMutedTimestamp: string; } | null; } | null; }; owner: { type: 'user' | 'team'; id: string; name: string; email?: string; }; }>; }; export type ListOrganizationMonitorsResponse = ListOrganizationMonitorsResponses[keyof ListOrganizationMonitorsResponses]; export type CreateOrganizationMonitorData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The project ID or slug to associate the monitor to. */ project: string; /** * Name of the monitor. Used for notifications. If not set the slug will be derived from your monitor name. */ name: string; /** * The configuration for the monitor. */ config: { /** * Currently supports "crontab" or "interval" * * * `crontab` * * `interval` */ schedule_type?: 'crontab' | 'interval'; /** * Varies depending on the schedule_type. Is either a crontab string, or a 2 element tuple for intervals (e.g. [1, 'day']) */ schedule: unknown; /** * How long (in minutes) after the expected checkin time will we wait until we consider the checkin to have been missed. */ checkin_margin?: number | null; /** * How long (in minutes) is the checkin allowed to run for in CheckInStatus.IN_PROGRESS before it is considered failed. */ max_runtime?: number | null; /** * tz database style timezone string * * * `Africa/Abidjan` * * `Africa/Accra` * * `Africa/Addis_Ababa` * * `Africa/Algiers` * * `Africa/Asmara` * * `Africa/Asmera` * * `Africa/Bamako` * * `Africa/Bangui` * * `Africa/Banjul` * * `Africa/Bissau` * * `Africa/Blantyre` * * `Africa/Brazzaville` * * `Africa/Bujumbura` * * `Africa/Cairo` * * `Africa/Casablanca` * * `Africa/Ceuta` * * `Africa/Conakry` * * `Africa/Dakar` * * `Africa/Dar_es_Salaam` * * `Africa/Djibouti` * * `Africa/Douala` * * `Africa/El_Aaiun` * * `Africa/Freetown` * * `Africa/Gaborone` * * `Africa/Harare` * * `Africa/Johannesburg` * * `Africa/Juba` * * `Africa/Kampala` * * `Africa/Khartoum` * * `Africa/Kigali` * * `Africa/Kinshasa` * * `Africa/Lagos` * * `Africa/Libreville` * * `Africa/Lome` * * `Africa/Luanda` * * `Africa/Lubumbashi` * * `Africa/Lusaka` * * `Africa/Malabo` * * `Africa/Maputo` * * `Africa/Maseru` * * `Africa/Mbabane` * * `Africa/Mogadishu` * * `Africa/Monrovia` * * `Africa/Nairobi` * * `Africa/Ndjamena` * * `Africa/Niamey` * * `Africa/Nouakchott` * * `Africa/Ouagadougou` * * `Africa/Porto-Novo` * * `Africa/Sao_Tome` * * `Africa/Timbuktu` * * `Africa/Tripoli` * * `Africa/Tunis` * * `Africa/Windhoek` * * `America/Adak` * * `America/Anchorage` * * `America/Anguilla` * * `America/Antigua` * * `America/Araguaina` * * `America/Argentina/Buenos_Aires` * * `America/Argentina/Catamarca` * * `America/Argentina/ComodRivadavia` * * `America/Argentina/Cordoba` * * `America/Argentina/Jujuy` * * `America/Argentina/La_Rioja` * * `America/Argentina/Mendoza` * * `America/Argentina/Rio_Gallegos` * * `America/Argentina/Salta` * * `America/Argentina/San_Juan` * * `America/Argentina/San_Luis` * * `America/Argentina/Tucuman` * * `America/Argentina/Ushuaia` * * `America/Aruba` * * `America/Asuncion` * * `America/Atikokan` * * `America/Atka` * * `America/Bahia` * * `America/Bahia_Banderas` * * `America/Barbados` * * `America/Belem` * * `America/Belize` * * `America/Blanc-Sablon` * * `America/Boa_Vista` * * `America/Bogota` * * `America/Boise` * * `America/Buenos_Aires` * * `America/Cambridge_Bay` * * `America/Campo_Grande` * * `America/Cancun` * * `America/Caracas` * * `America/Catamarca` * * `America/Cayenne` * * `America/Cayman` * * `America/Chicago` * * `America/Chihuahua` * * `America/Ciudad_Juarez` * * `America/Coral_Harbour` * * `America/Cordoba` * * `America/Costa_Rica` * * `America/Coyhaique` * * `America/Creston` * * `America/Cuiaba` * * `America/Curacao` * * `America/Danmarkshavn` * * `America/Dawson` * * `America/Dawson_Creek` * * `America/Denver` * * `America/Detroit` * * `America/Dominica` * * `America/Edmonton` * * `America/Eirunepe` * * `America/El_Salvador` * * `America/Ensenada` * * `America/Fort_Nelson` * * `America/Fort_Wayne` * * `America/Fortaleza` * * `America/Glace_Bay` * * `America/Godthab` * * `America/Goose_Bay` * * `America/Grand_Turk` * * `America/Grenada` * * `America/Guadeloupe` * * `America/Guatemala` * * `America/Guayaquil` * * `America/Guyana` * * `America/Halifax` * * `America/Havana` * * `America/Hermosillo` * * `America/Indiana/Indianapolis` * * `America/Indiana/Knox` * * `America/Indiana/Marengo` * * `America/Indiana/Petersburg` * * `America/Indiana/Tell_City` * * `America/Indiana/Vevay` * * `America/Indiana/Vincennes` * * `America/Indiana/Winamac` * * `America/Indianapolis` * * `America/Inuvik` * * `America/Iqaluit` * * `America/Jamaica` * * `America/Jujuy` * * `America/Juneau` * * `America/Kentucky/Louisville` * * `America/Kentucky/Monticello` * * `America/Knox_IN` * * `America/Kralendijk` * * `America/La_Paz` * * `America/Lima` * * `America/Los_Angeles` * * `America/Louisville` * * `America/Lower_Princes` * * `America/Maceio` * * `America/Managua` * * `America/Manaus` * * `America/Marigot` * * `America/Martinique` * * `America/Matamoros` * * `America/Mazatlan` * * `America/Mendoza` * * `America/Menominee` * * `America/Merida` * * `America/Metlakatla` * * `America/Mexico_City` * * `America/Miquelon` * * `America/Moncton` * * `America/Monterrey` * * `America/Montevideo` * * `America/Montreal` * * `America/Montserrat` * * `America/Nassau` * * `America/New_York` * * `America/Nipigon` * * `America/Nome` * * `America/Noronha` * * `America/North_Dakota/Beulah` * * `America/North_Dakota/Center` * * `America/North_Dakota/New_Salem` * * `America/Nuuk` * * `America/Ojinaga` * * `America/Panama` * * `America/Pangnirtung` * * `America/Paramaribo` * * `America/Phoenix` * * `America/Port-au-Prince` * * `America/Port_of_Spain` * * `America/Porto_Acre` * * `America/Porto_Velho` * * `America/Puerto_Rico` * * `America/Punta_Arenas` * * `America/Rainy_River` * * `America/Rankin_Inlet` * * `America/Recife` * * `America/Regina` * * `America/Resolute` * * `America/Rio_Branco` * * `America/Rosario` * * `America/Santa_Isabel` * * `America/Santarem` * * `America/Santiago` * * `America/Santo_Domingo` * * `America/Sao_Paulo` * * `America/Scoresbysund` * * `America/Shiprock` * * `America/Sitka` * * `America/St_Barthelemy` * * `America/St_Johns` * * `America/St_Kitts` * * `America/St_Lucia` * * `America/St_Thomas` * * `America/St_Vincent` * * `America/Swift_Current` * * `America/Tegucigalpa` * * `America/Thule` * * `America/Thunder_Bay` * * `America/Tijuana` * * `America/Toronto` * * `America/Tortola` * * `America/Vancouver` * * `America/Virgin` * * `America/Whitehorse` * * `America/Winnipeg` * * `America/Yakutat` * * `America/Yellowknife` * * `Antarctica/Casey` * * `Antarctica/Davis` * * `Antarctica/DumontDUrville` * * `Antarctica/Macquarie` * * `Antarctica/Mawson` * * `Antarctica/McMurdo` * * `Antarctica/Palmer` * * `Antarctica/Rothera` * * `Antarctica/South_Pole` * * `Antarctica/Syowa` * * `Antarctica/Troll` * * `Antarctica/Vostok` * * `Arctic/Longyearbyen` * * `Asia/Aden` * * `Asia/Almaty` * * `Asia/Amman` * * `Asia/Anadyr` * * `Asia/Aqtau` * * `Asia/Aqtobe` * * `Asia/Ashgabat` * * `Asia/Ashkhabad` * * `Asia/Atyrau` * * `Asia/Baghdad` * * `Asia/Bahrain` * * `Asia/Baku` * * `Asia/Bangkok` * * `Asia/Barnaul` * * `Asia/Beirut` * * `Asia/Bishkek` * * `Asia/Brunei` * * `Asia/Calcutta` * * `Asia/Chita` * * `Asia/Choibalsan` * * `Asia/Chongqing` * * `Asia/Chungking` * * `Asia/Colombo` * * `Asia/Dacca` * * `Asia/Damascus` * * `Asia/Dhaka` * * `Asia/Dili` * * `Asia/Dubai` * * `Asia/Dushanbe` * * `Asia/Famagusta` * * `Asia/Gaza` * * `Asia/Harbin` * * `Asia/Hebron` * * `Asia/Ho_Chi_Minh` * * `Asia/Hong_Kong` * * `Asia/Hovd` * * `Asia/Irkutsk` * * `Asia/Istanbul` * * `Asia/Jakarta` * * `Asia/Jayapura` * * `Asia/Jerusalem` * * `Asia/Kabul` * * `Asia/Kamchatka` * * `Asia/Karachi` * * `Asia/Kashgar` * * `Asia/Kathmandu` * * `Asia/Katmandu` * * `Asia/Khandyga` * * `Asia/Kolkata` * * `Asia/Krasnoyarsk` * * `Asia/Kuala_Lumpur` * * `Asia/Kuching` * * `Asia/Kuwait` * * `Asia/Macao` * * `Asia/Macau` * * `Asia/Magadan` * * `Asia/Makassar` * * `Asia/Manila` * * `Asia/Muscat` * * `Asia/Nicosia` * * `Asia/Novokuznetsk` * * `Asia/Novosibirsk` * * `Asia/Omsk` * * `Asia/Oral` * * `Asia/Phnom_Penh` * * `Asia/Pontianak` * * `Asia/Pyongyang` * * `Asia/Qatar` * * `Asia/Qostanay` * * `Asia/Qyzylorda` * * `Asia/Rangoon` * * `Asia/Riyadh` * * `Asia/Saigon` * * `Asia/Sakhalin` * * `Asia/Samarkand` * * `Asia/Seoul` * * `Asia/Shanghai` * * `Asia/Singapore` * * `Asia/Srednekolymsk` * * `Asia/Taipei` * * `Asia/Tashkent` * * `Asia/Tbilisi` * * `Asia/Tehran` * * `Asia/Tel_Aviv` * * `Asia/Thimbu` * * `Asia/Thimphu` * * `Asia/Tokyo` * * `Asia/Tomsk` * * `Asia/Ujung_Pandang` * * `Asia/Ulaanbaatar` * * `Asia/Ulan_Bator` * * `Asia/Urumqi` * * `Asia/Ust-Nera` * * `Asia/Vientiane` * * `Asia/Vladivostok` * * `Asia/Yakutsk` * * `Asia/Yangon` * * `Asia/Yekaterinburg` * * `Asia/Yerevan` * * `Atlantic/Azores` * * `Atlantic/Bermuda` * * `Atlantic/Canary` * * `Atlantic/Cape_Verde` * * `Atlantic/Faeroe` * * `Atlantic/Faroe` * * `Atlantic/Jan_Mayen` * * `Atlantic/Madeira` * * `Atlantic/Reykjavik` * * `Atlantic/South_Georgia` * * `Atlantic/St_Helena` * * `Atlantic/Stanley` * * `Australia/ACT` * * `Australia/Adelaide` * * `Australia/Brisbane` * * `Australia/Broken_Hill` * * `Australia/Canberra` * * `Australia/Currie` * * `Australia/Darwin` * * `Australia/Eucla` * * `Australia/Hobart` * * `Australia/LHI` * * `Australia/Lindeman` * * `Australia/Lord_Howe` * * `Australia/Melbourne` * * `Australia/NSW` * * `Australia/North` * * `Australia/Perth` * * `Australia/Queensland` * * `Australia/South` * * `Australia/Sydney` * * `Australia/Tasmania` * * `Australia/Victoria` * * `Australia/West` * * `Australia/Yancowinna` * * `Brazil/Acre` * * `Brazil/DeNoronha` * * `Brazil/East` * * `Brazil/West` * * `CET` * * `CST6CDT` * * `Canada/Atlantic` * * `Canada/Central` * * `Canada/Eastern` * * `Canada/Mountain` * * `Canada/Newfoundland` * * `Canada/Pacific` * * `Canada/Saskatchewan` * * `Canada/Yukon` * * `Chile/Continental` * * `Chile/EasterIsland` * * `Cuba` * * `EET` * * `EST` * * `EST5EDT` * * `Egypt` * * `Eire` * * `Etc/GMT` * * `Etc/GMT+0` * * `Etc/GMT+1` * * `Etc/GMT+10` * * `Etc/GMT+11` * * `Etc/GMT+12` * * `Etc/GMT+2` * * `Etc/GMT+3` * * `Etc/GMT+4` * * `Etc/GMT+5` * * `Etc/GMT+6` * * `Etc/GMT+7` * * `Etc/GMT+8` * * `Etc/GMT+9` * * `Etc/GMT-0` * * `Etc/GMT-1` * * `Etc/GMT-10` * * `Etc/GMT-11` * * `Etc/GMT-12` * * `Etc/GMT-13` * * `Etc/GMT-14` * * `Etc/GMT-2` * * `Etc/GMT-3` * * `Etc/GMT-4` * * `Etc/GMT-5` * * `Etc/GMT-6` * * `Etc/GMT-7` * * `Etc/GMT-8` * * `Etc/GMT-9` * * `Etc/GMT0` * * `Etc/Greenwich` * * `Etc/UCT` * * `Etc/UTC` * * `Etc/Universal` * * `Etc/Zulu` * * `Europe/Amsterdam` * * `Europe/Andorra` * * `Europe/Astrakhan` * * `Europe/Athens` * * `Europe/Belfast` * * `Europe/Belgrade` * * `Europe/Berlin` * * `Europe/Bratislava` * * `Europe/Brussels` * * `Europe/Bucharest` * * `Europe/Budapest` * * `Europe/Busingen` * * `Europe/Chisinau` * * `Europe/Copenhagen` * * `Europe/Dublin` * * `Europe/Gibraltar` * * `Europe/Guernsey` * * `Europe/Helsinki` * * `Europe/Isle_of_Man` * * `Europe/Istanbul` * * `Europe/Jersey` * * `Europe/Kaliningrad` * * `Europe/Kiev` * * `Europe/Kirov` * * `Europe/Kyiv` * * `Europe/Lisbon` * * `Europe/Ljubljana` * * `Europe/London` * * `Europe/Luxembourg` * * `Europe/Madrid` * * `Europe/Malta` * * `Europe/Mariehamn` * * `Europe/Minsk` * * `Europe/Monaco` * * `Europe/Moscow` * * `Europe/Nicosia` * * `Europe/Oslo` * * `Europe/Paris` * * `Europe/Podgorica` * * `Europe/Prague` * * `Europe/Riga` * * `Europe/Rome` * * `Europe/Samara` * * `Europe/San_Marino` * * `Europe/Sarajevo` * * `Europe/Saratov` * * `Europe/Simferopol` * * `Europe/Skopje` * * `Europe/Sofia` * * `Europe/Stockholm` * * `Europe/Tallinn` * * `Europe/Tirane` * * `Europe/Tiraspol` * * `Europe/Ulyanovsk` * * `Europe/Uzhgorod` * * `Europe/Vaduz` * * `Europe/Vatican` * * `Europe/Vienna` * * `Europe/Vilnius` * * `Europe/Volgograd` * * `Europe/Warsaw` * * `Europe/Zagreb` * * `Europe/Zaporozhye` * * `Europe/Zurich` * * `GB` * * `GB-Eire` * * `GMT` * * `GMT+0` * * `GMT-0` * * `GMT0` * * `Greenwich` * * `HST` * * `Hongkong` * * `Iceland` * * `Indian/Antananarivo` * * `Indian/Chagos` * * `Indian/Christmas` * * `Indian/Cocos` * * `Indian/Comoro` * * `Indian/Kerguelen` * * `Indian/Mahe` * * `Indian/Maldives` * * `Indian/Mauritius` * * `Indian/Mayotte` * * `Indian/Reunion` * * `Iran` * * `Israel` * * `Jamaica` * * `Japan` * * `Kwajalein` * * `Libya` * * `MET` * * `MST` * * `MST7MDT` * * `Mexico/BajaNorte` * * `Mexico/BajaSur` * * `Mexico/General` * * `NZ` * * `NZ-CHAT` * * `Navajo` * * `PRC` * * `PST8PDT` * * `Pacific/Apia` * * `Pacific/Auckland` * * `Pacific/Bougainville` * * `Pacific/Chatham` * * `Pacific/Chuuk` * * `Pacific/Easter` * * `Pacific/Efate` * * `Pacific/Enderbury` * * `Pacific/Fakaofo` * * `Pacific/Fiji` * * `Pacific/Funafuti` * * `Pacific/Galapagos` * * `Pacific/Gambier` * * `Pacific/Guadalcanal` * * `Pacific/Guam` * * `Pacific/Honolulu` * * `Pacific/Johnston` * * `Pacific/Kanton` * * `Pacific/Kiritimati` * * `Pacific/Kosrae` * * `Pacific/Kwajalein` * * `Pacific/Majuro` * * `Pacific/Marquesas` * * `Pacific/Midway` * * `Pacific/Nauru` * * `Pacific/Niue` * * `Pacific/Norfolk` * * `Pacific/Noumea` * * `Pacific/Pago_Pago` * * `Pacific/Palau` * * `Pacific/Pitcairn` * * `Pacific/Pohnpei` * * `Pacific/Ponape` * * `Pacific/Port_Moresby` * * `Pacific/Rarotonga` * * `Pacific/Saipan` * * `Pacific/Samoa` * * `Pacific/Tahiti` * * `Pacific/Tarawa` * * `Pacific/Tongatapu` * * `Pacific/Truk` * * `Pacific/Wake` * * `Pacific/Wallis` * * `Pacific/Yap` * * `Poland` * * `Portugal` * * `ROC` * * `ROK` * * `Singapore` * * `Turkey` * * `UCT` * * `US/Alaska` * * `US/Aleutian` * * `US/Arizona` * * `US/Central` * * `US/East-Indiana` * * `US/Eastern` * * `US/Hawaii` * * `US/Indiana-Starke` * * `US/Michigan` * * `US/Mountain` * * `US/Pacific` * * `US/Samoa` * * `UTC` * * `Universal` * * `W-SU` * * `WET` * * `Zulu` * * `localtime` */ timezone?: 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Asmera' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Timbuktu' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/ComodRivadavia' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Atka' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Buenos_Aires' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Catamarca' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Coral_Harbour' | 'America/Cordoba' | 'America/Costa_Rica' | 'America/Coyhaique' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Ensenada' | 'America/Fort_Nelson' | 'America/Fort_Wayne' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Godthab' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Indianapolis' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Jujuy' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Knox_IN' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Louisville' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Mendoza' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montreal' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nipigon' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Pangnirtung' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Acre' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rainy_River' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Rosario' | 'America/Santa_Isabel' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Shiprock' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Thunder_Bay' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Virgin' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'America/Yellowknife' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/South_Pole' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Ashkhabad' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Calcutta' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Chongqing' | 'Asia/Chungking' | 'Asia/Colombo' | 'Asia/Dacca' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Harbin' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Istanbul' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kashgar' | 'Asia/Kathmandu' | 'Asia/Katmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macao' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Rangoon' | 'Asia/Riyadh' | 'Asia/Saigon' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Tel_Aviv' | 'Asia/Thimbu' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ujung_Pandang' | 'Asia/Ulaanbaatar' | 'Asia/Ulan_Bator' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faeroe' | 'Atlantic/Faroe' | 'Atlantic/Jan_Mayen' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/ACT' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Canberra' | 'Australia/Currie' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/LHI' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/NSW' | 'Australia/North' | 'Australia/Perth' | 'Australia/Queensland' | 'Australia/South' | 'Australia/Sydney' | 'Australia/Tasmania' | 'Australia/Victoria' | 'Australia/West' | 'Australia/Yancowinna' | 'Brazil/Acre' | 'Brazil/DeNoronha' | 'Brazil/East' | 'Brazil/West' | 'CET' | 'CST6CDT' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Canada/Saskatchewan' | 'Canada/Yukon' | 'Chile/Continental' | 'Chile/EasterIsland' | 'Cuba' | 'EET' | 'EST' | 'EST5EDT' | 'Egypt' | 'Eire' | 'Etc/GMT' | 'Etc/GMT+0' | 'Etc/GMT+1' | 'Etc/GMT+10' | 'Etc/GMT+11' | 'Etc/GMT+12' | 'Etc/GMT+2' | 'Etc/GMT+3' | 'Etc/GMT+4' | 'Etc/GMT+5' | 'Etc/GMT+6' | 'Etc/GMT+7' | 'Etc/GMT+8' | 'Etc/GMT+9' | 'Etc/GMT-0' | 'Etc/GMT-1' | 'Etc/GMT-10' | 'Etc/GMT-11' | 'Etc/GMT-12' | 'Etc/GMT-13' | 'Etc/GMT-14' | 'Etc/GMT-2' | 'Etc/GMT-3' | 'Etc/GMT-4' | 'Etc/GMT-5' | 'Etc/GMT-6' | 'Etc/GMT-7' | 'Etc/GMT-8' | 'Etc/GMT-9' | 'Etc/GMT0' | 'Etc/Greenwich' | 'Etc/UCT' | 'Etc/UTC' | 'Etc/Universal' | 'Etc/Zulu' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belfast' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kiev' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Nicosia' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Tiraspol' | 'Europe/Ulyanovsk' | 'Europe/Uzhgorod' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zaporozhye' | 'Europe/Zurich' | 'GB' | 'GB-Eire' | 'GMT' | 'GMT+0' | 'GMT-0' | 'GMT0' | 'Greenwich' | 'HST' | 'Hongkong' | 'Iceland' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Iran' | 'Israel' | 'Jamaica' | 'Japan' | 'Kwajalein' | 'Libya' | 'MET' | 'MST' | 'MST7MDT' | 'Mexico/BajaNorte' | 'Mexico/BajaSur' | 'Mexico/General' | 'NZ' | 'NZ-CHAT' | 'Navajo' | 'PRC' | 'PST8PDT' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Enderbury' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Johnston' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Ponape' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Samoa' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Truk' | 'Pacific/Wake' | 'Pacific/Wallis' | 'Pacific/Yap' | 'Poland' | 'Portugal' | 'ROC' | 'ROK' | 'Singapore' | 'Turkey' | 'UCT' | 'US/Alaska' | 'US/Aleutian' | 'US/Arizona' | 'US/Central' | 'US/East-Indiana' | 'US/Eastern' | 'US/Hawaii' | 'US/Indiana-Starke' | 'US/Michigan' | 'US/Mountain' | 'US/Pacific' | 'US/Samoa' | 'UTC' | 'Universal' | 'W-SU' | 'WET' | 'Zulu' | 'localtime' | ''; /** * How many consecutive missed or failed check-ins in a row before creating a new issue. */ failure_issue_threshold?: number | null; /** * How many successful check-ins in a row before resolving an issue. */ recovery_threshold?: number | null; }; /** * Uniquely identifies your monitor within your organization. Changing this slug will require updates to any instrumented check-in calls. */ slug?: string; /** * Status of the monitor. Disabled monitors will not accept events and will not count towards the monitor quota. * * * `active` * * `disabled` */ status?: 'active' | 'disabled'; /** * The ID of the team or user that owns the monitor. (eg. user:51 or team:6) */ owner?: string | null; /** * Disable creation of monitor incidents */ is_muted?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/monitors/'; }; export type CreateOrganizationMonitorErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type CreateOrganizationMonitorResponses = { 201: { alertRule?: { targets: Array<{ targetIdentifier: number; targetType: string; }>; environment: string; }; id: string; name: string; slug: string; status: string; isMuted: boolean; isUpserting: boolean; config: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; dateCreated: string; project: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }; environments: { name: string; status: string; isMuted: boolean; dateCreated: string; lastCheckIn: string; nextCheckIn: string; nextCheckInLatest: string; activeIncident: { startingTimestamp: string; resolvingTimestamp: string; brokenNotice: { userNotifiedTimestamp: string; environmentMutedTimestamp: string; } | null; } | null; }; owner: { type: 'user' | 'team'; id: string; name: string; email?: string; }; }; }; export type CreateOrganizationMonitorResponse = CreateOrganizationMonitorResponses[keyof CreateOrganizationMonitorResponses]; export type DeleteOrganizationMonitorData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the monitor. */ monitor_id_or_slug: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/monitors/{monitor_id_or_slug}/'; }; export type DeleteOrganizationMonitorErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationMonitorResponses = { /** * Accepted */ 202: unknown; }; export type GetOrganizationMonitorData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the monitor. */ monitor_id_or_slug: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/monitors/{monitor_id_or_slug}/'; }; export type GetOrganizationMonitorErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationMonitorResponses = { 200: { alertRule?: { targets: Array<{ targetIdentifier: number; targetType: string; }>; environment: string; }; id: string; name: string; slug: string; status: string; isMuted: boolean; isUpserting: boolean; config: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; dateCreated: string; project: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }; environments: { name: string; status: string; isMuted: boolean; dateCreated: string; lastCheckIn: string; nextCheckIn: string; nextCheckInLatest: string; activeIncident: { startingTimestamp: string; resolvingTimestamp: string; brokenNotice: { userNotifiedTimestamp: string; environmentMutedTimestamp: string; } | null; } | null; }; owner: { type: 'user' | 'team'; id: string; name: string; email?: string; }; }; }; export type GetOrganizationMonitorResponse = GetOrganizationMonitorResponses[keyof GetOrganizationMonitorResponses]; export type UpdateOrganizationMonitorData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The project ID or slug to associate the monitor to. */ project: string; /** * Name of the monitor. Used for notifications. If not set the slug will be derived from your monitor name. */ name: string; /** * The configuration for the monitor. */ config: { /** * Currently supports "crontab" or "interval" * * * `crontab` * * `interval` */ schedule_type?: 'crontab' | 'interval'; /** * Varies depending on the schedule_type. Is either a crontab string, or a 2 element tuple for intervals (e.g. [1, 'day']) */ schedule: unknown; /** * How long (in minutes) after the expected checkin time will we wait until we consider the checkin to have been missed. */ checkin_margin?: number | null; /** * How long (in minutes) is the checkin allowed to run for in CheckInStatus.IN_PROGRESS before it is considered failed. */ max_runtime?: number | null; /** * tz database style timezone string * * * `Africa/Abidjan` * * `Africa/Accra` * * `Africa/Addis_Ababa` * * `Africa/Algiers` * * `Africa/Asmara` * * `Africa/Asmera` * * `Africa/Bamako` * * `Africa/Bangui` * * `Africa/Banjul` * * `Africa/Bissau` * * `Africa/Blantyre` * * `Africa/Brazzaville` * * `Africa/Bujumbura` * * `Africa/Cairo` * * `Africa/Casablanca` * * `Africa/Ceuta` * * `Africa/Conakry` * * `Africa/Dakar` * * `Africa/Dar_es_Salaam` * * `Africa/Djibouti` * * `Africa/Douala` * * `Africa/El_Aaiun` * * `Africa/Freetown` * * `Africa/Gaborone` * * `Africa/Harare` * * `Africa/Johannesburg` * * `Africa/Juba` * * `Africa/Kampala` * * `Africa/Khartoum` * * `Africa/Kigali` * * `Africa/Kinshasa` * * `Africa/Lagos` * * `Africa/Libreville` * * `Africa/Lome` * * `Africa/Luanda` * * `Africa/Lubumbashi` * * `Africa/Lusaka` * * `Africa/Malabo` * * `Africa/Maputo` * * `Africa/Maseru` * * `Africa/Mbabane` * * `Africa/Mogadishu` * * `Africa/Monrovia` * * `Africa/Nairobi` * * `Africa/Ndjamena` * * `Africa/Niamey` * * `Africa/Nouakchott` * * `Africa/Ouagadougou` * * `Africa/Porto-Novo` * * `Africa/Sao_Tome` * * `Africa/Timbuktu` * * `Africa/Tripoli` * * `Africa/Tunis` * * `Africa/Windhoek` * * `America/Adak` * * `America/Anchorage` * * `America/Anguilla` * * `America/Antigua` * * `America/Araguaina` * * `America/Argentina/Buenos_Aires` * * `America/Argentina/Catamarca` * * `America/Argentina/ComodRivadavia` * * `America/Argentina/Cordoba` * * `America/Argentina/Jujuy` * * `America/Argentina/La_Rioja` * * `America/Argentina/Mendoza` * * `America/Argentina/Rio_Gallegos` * * `America/Argentina/Salta` * * `America/Argentina/San_Juan` * * `America/Argentina/San_Luis` * * `America/Argentina/Tucuman` * * `America/Argentina/Ushuaia` * * `America/Aruba` * * `America/Asuncion` * * `America/Atikokan` * * `America/Atka` * * `America/Bahia` * * `America/Bahia_Banderas` * * `America/Barbados` * * `America/Belem` * * `America/Belize` * * `America/Blanc-Sablon` * * `America/Boa_Vista` * * `America/Bogota` * * `America/Boise` * * `America/Buenos_Aires` * * `America/Cambridge_Bay` * * `America/Campo_Grande` * * `America/Cancun` * * `America/Caracas` * * `America/Catamarca` * * `America/Cayenne` * * `America/Cayman` * * `America/Chicago` * * `America/Chihuahua` * * `America/Ciudad_Juarez` * * `America/Coral_Harbour` * * `America/Cordoba` * * `America/Costa_Rica` * * `America/Coyhaique` * * `America/Creston` * * `America/Cuiaba` * * `America/Curacao` * * `America/Danmarkshavn` * * `America/Dawson` * * `America/Dawson_Creek` * * `America/Denver` * * `America/Detroit` * * `America/Dominica` * * `America/Edmonton` * * `America/Eirunepe` * * `America/El_Salvador` * * `America/Ensenada` * * `America/Fort_Nelson` * * `America/Fort_Wayne` * * `America/Fortaleza` * * `America/Glace_Bay` * * `America/Godthab` * * `America/Goose_Bay` * * `America/Grand_Turk` * * `America/Grenada` * * `America/Guadeloupe` * * `America/Guatemala` * * `America/Guayaquil` * * `America/Guyana` * * `America/Halifax` * * `America/Havana` * * `America/Hermosillo` * * `America/Indiana/Indianapolis` * * `America/Indiana/Knox` * * `America/Indiana/Marengo` * * `America/Indiana/Petersburg` * * `America/Indiana/Tell_City` * * `America/Indiana/Vevay` * * `America/Indiana/Vincennes` * * `America/Indiana/Winamac` * * `America/Indianapolis` * * `America/Inuvik` * * `America/Iqaluit` * * `America/Jamaica` * * `America/Jujuy` * * `America/Juneau` * * `America/Kentucky/Louisville` * * `America/Kentucky/Monticello` * * `America/Knox_IN` * * `America/Kralendijk` * * `America/La_Paz` * * `America/Lima` * * `America/Los_Angeles` * * `America/Louisville` * * `America/Lower_Princes` * * `America/Maceio` * * `America/Managua` * * `America/Manaus` * * `America/Marigot` * * `America/Martinique` * * `America/Matamoros` * * `America/Mazatlan` * * `America/Mendoza` * * `America/Menominee` * * `America/Merida` * * `America/Metlakatla` * * `America/Mexico_City` * * `America/Miquelon` * * `America/Moncton` * * `America/Monterrey` * * `America/Montevideo` * * `America/Montreal` * * `America/Montserrat` * * `America/Nassau` * * `America/New_York` * * `America/Nipigon` * * `America/Nome` * * `America/Noronha` * * `America/North_Dakota/Beulah` * * `America/North_Dakota/Center` * * `America/North_Dakota/New_Salem` * * `America/Nuuk` * * `America/Ojinaga` * * `America/Panama` * * `America/Pangnirtung` * * `America/Paramaribo` * * `America/Phoenix` * * `America/Port-au-Prince` * * `America/Port_of_Spain` * * `America/Porto_Acre` * * `America/Porto_Velho` * * `America/Puerto_Rico` * * `America/Punta_Arenas` * * `America/Rainy_River` * * `America/Rankin_Inlet` * * `America/Recife` * * `America/Regina` * * `America/Resolute` * * `America/Rio_Branco` * * `America/Rosario` * * `America/Santa_Isabel` * * `America/Santarem` * * `America/Santiago` * * `America/Santo_Domingo` * * `America/Sao_Paulo` * * `America/Scoresbysund` * * `America/Shiprock` * * `America/Sitka` * * `America/St_Barthelemy` * * `America/St_Johns` * * `America/St_Kitts` * * `America/St_Lucia` * * `America/St_Thomas` * * `America/St_Vincent` * * `America/Swift_Current` * * `America/Tegucigalpa` * * `America/Thule` * * `America/Thunder_Bay` * * `America/Tijuana` * * `America/Toronto` * * `America/Tortola` * * `America/Vancouver` * * `America/Virgin` * * `America/Whitehorse` * * `America/Winnipeg` * * `America/Yakutat` * * `America/Yellowknife` * * `Antarctica/Casey` * * `Antarctica/Davis` * * `Antarctica/DumontDUrville` * * `Antarctica/Macquarie` * * `Antarctica/Mawson` * * `Antarctica/McMurdo` * * `Antarctica/Palmer` * * `Antarctica/Rothera` * * `Antarctica/South_Pole` * * `Antarctica/Syowa` * * `Antarctica/Troll` * * `Antarctica/Vostok` * * `Arctic/Longyearbyen` * * `Asia/Aden` * * `Asia/Almaty` * * `Asia/Amman` * * `Asia/Anadyr` * * `Asia/Aqtau` * * `Asia/Aqtobe` * * `Asia/Ashgabat` * * `Asia/Ashkhabad` * * `Asia/Atyrau` * * `Asia/Baghdad` * * `Asia/Bahrain` * * `Asia/Baku` * * `Asia/Bangkok` * * `Asia/Barnaul` * * `Asia/Beirut` * * `Asia/Bishkek` * * `Asia/Brunei` * * `Asia/Calcutta` * * `Asia/Chita` * * `Asia/Choibalsan` * * `Asia/Chongqing` * * `Asia/Chungking` * * `Asia/Colombo` * * `Asia/Dacca` * * `Asia/Damascus` * * `Asia/Dhaka` * * `Asia/Dili` * * `Asia/Dubai` * * `Asia/Dushanbe` * * `Asia/Famagusta` * * `Asia/Gaza` * * `Asia/Harbin` * * `Asia/Hebron` * * `Asia/Ho_Chi_Minh` * * `Asia/Hong_Kong` * * `Asia/Hovd` * * `Asia/Irkutsk` * * `Asia/Istanbul` * * `Asia/Jakarta` * * `Asia/Jayapura` * * `Asia/Jerusalem` * * `Asia/Kabul` * * `Asia/Kamchatka` * * `Asia/Karachi` * * `Asia/Kashgar` * * `Asia/Kathmandu` * * `Asia/Katmandu` * * `Asia/Khandyga` * * `Asia/Kolkata` * * `Asia/Krasnoyarsk` * * `Asia/Kuala_Lumpur` * * `Asia/Kuching` * * `Asia/Kuwait` * * `Asia/Macao` * * `Asia/Macau` * * `Asia/Magadan` * * `Asia/Makassar` * * `Asia/Manila` * * `Asia/Muscat` * * `Asia/Nicosia` * * `Asia/Novokuznetsk` * * `Asia/Novosibirsk` * * `Asia/Omsk` * * `Asia/Oral` * * `Asia/Phnom_Penh` * * `Asia/Pontianak` * * `Asia/Pyongyang` * * `Asia/Qatar` * * `Asia/Qostanay` * * `Asia/Qyzylorda` * * `Asia/Rangoon` * * `Asia/Riyadh` * * `Asia/Saigon` * * `Asia/Sakhalin` * * `Asia/Samarkand` * * `Asia/Seoul` * * `Asia/Shanghai` * * `Asia/Singapore` * * `Asia/Srednekolymsk` * * `Asia/Taipei` * * `Asia/Tashkent` * * `Asia/Tbilisi` * * `Asia/Tehran` * * `Asia/Tel_Aviv` * * `Asia/Thimbu` * * `Asia/Thimphu` * * `Asia/Tokyo` * * `Asia/Tomsk` * * `Asia/Ujung_Pandang` * * `Asia/Ulaanbaatar` * * `Asia/Ulan_Bator` * * `Asia/Urumqi` * * `Asia/Ust-Nera` * * `Asia/Vientiane` * * `Asia/Vladivostok` * * `Asia/Yakutsk` * * `Asia/Yangon` * * `Asia/Yekaterinburg` * * `Asia/Yerevan` * * `Atlantic/Azores` * * `Atlantic/Bermuda` * * `Atlantic/Canary` * * `Atlantic/Cape_Verde` * * `Atlantic/Faeroe` * * `Atlantic/Faroe` * * `Atlantic/Jan_Mayen` * * `Atlantic/Madeira` * * `Atlantic/Reykjavik` * * `Atlantic/South_Georgia` * * `Atlantic/St_Helena` * * `Atlantic/Stanley` * * `Australia/ACT` * * `Australia/Adelaide` * * `Australia/Brisbane` * * `Australia/Broken_Hill` * * `Australia/Canberra` * * `Australia/Currie` * * `Australia/Darwin` * * `Australia/Eucla` * * `Australia/Hobart` * * `Australia/LHI` * * `Australia/Lindeman` * * `Australia/Lord_Howe` * * `Australia/Melbourne` * * `Australia/NSW` * * `Australia/North` * * `Australia/Perth` * * `Australia/Queensland` * * `Australia/South` * * `Australia/Sydney` * * `Australia/Tasmania` * * `Australia/Victoria` * * `Australia/West` * * `Australia/Yancowinna` * * `Brazil/Acre` * * `Brazil/DeNoronha` * * `Brazil/East` * * `Brazil/West` * * `CET` * * `CST6CDT` * * `Canada/Atlantic` * * `Canada/Central` * * `Canada/Eastern` * * `Canada/Mountain` * * `Canada/Newfoundland` * * `Canada/Pacific` * * `Canada/Saskatchewan` * * `Canada/Yukon` * * `Chile/Continental` * * `Chile/EasterIsland` * * `Cuba` * * `EET` * * `EST` * * `EST5EDT` * * `Egypt` * * `Eire` * * `Etc/GMT` * * `Etc/GMT+0` * * `Etc/GMT+1` * * `Etc/GMT+10` * * `Etc/GMT+11` * * `Etc/GMT+12` * * `Etc/GMT+2` * * `Etc/GMT+3` * * `Etc/GMT+4` * * `Etc/GMT+5` * * `Etc/GMT+6` * * `Etc/GMT+7` * * `Etc/GMT+8` * * `Etc/GMT+9` * * `Etc/GMT-0` * * `Etc/GMT-1` * * `Etc/GMT-10` * * `Etc/GMT-11` * * `Etc/GMT-12` * * `Etc/GMT-13` * * `Etc/GMT-14` * * `Etc/GMT-2` * * `Etc/GMT-3` * * `Etc/GMT-4` * * `Etc/GMT-5` * * `Etc/GMT-6` * * `Etc/GMT-7` * * `Etc/GMT-8` * * `Etc/GMT-9` * * `Etc/GMT0` * * `Etc/Greenwich` * * `Etc/UCT` * * `Etc/UTC` * * `Etc/Universal` * * `Etc/Zulu` * * `Europe/Amsterdam` * * `Europe/Andorra` * * `Europe/Astrakhan` * * `Europe/Athens` * * `Europe/Belfast` * * `Europe/Belgrade` * * `Europe/Berlin` * * `Europe/Bratislava` * * `Europe/Brussels` * * `Europe/Bucharest` * * `Europe/Budapest` * * `Europe/Busingen` * * `Europe/Chisinau` * * `Europe/Copenhagen` * * `Europe/Dublin` * * `Europe/Gibraltar` * * `Europe/Guernsey` * * `Europe/Helsinki` * * `Europe/Isle_of_Man` * * `Europe/Istanbul` * * `Europe/Jersey` * * `Europe/Kaliningrad` * * `Europe/Kiev` * * `Europe/Kirov` * * `Europe/Kyiv` * * `Europe/Lisbon` * * `Europe/Ljubljana` * * `Europe/London` * * `Europe/Luxembourg` * * `Europe/Madrid` * * `Europe/Malta` * * `Europe/Mariehamn` * * `Europe/Minsk` * * `Europe/Monaco` * * `Europe/Moscow` * * `Europe/Nicosia` * * `Europe/Oslo` * * `Europe/Paris` * * `Europe/Podgorica` * * `Europe/Prague` * * `Europe/Riga` * * `Europe/Rome` * * `Europe/Samara` * * `Europe/San_Marino` * * `Europe/Sarajevo` * * `Europe/Saratov` * * `Europe/Simferopol` * * `Europe/Skopje` * * `Europe/Sofia` * * `Europe/Stockholm` * * `Europe/Tallinn` * * `Europe/Tirane` * * `Europe/Tiraspol` * * `Europe/Ulyanovsk` * * `Europe/Uzhgorod` * * `Europe/Vaduz` * * `Europe/Vatican` * * `Europe/Vienna` * * `Europe/Vilnius` * * `Europe/Volgograd` * * `Europe/Warsaw` * * `Europe/Zagreb` * * `Europe/Zaporozhye` * * `Europe/Zurich` * * `GB` * * `GB-Eire` * * `GMT` * * `GMT+0` * * `GMT-0` * * `GMT0` * * `Greenwich` * * `HST` * * `Hongkong` * * `Iceland` * * `Indian/Antananarivo` * * `Indian/Chagos` * * `Indian/Christmas` * * `Indian/Cocos` * * `Indian/Comoro` * * `Indian/Kerguelen` * * `Indian/Mahe` * * `Indian/Maldives` * * `Indian/Mauritius` * * `Indian/Mayotte` * * `Indian/Reunion` * * `Iran` * * `Israel` * * `Jamaica` * * `Japan` * * `Kwajalein` * * `Libya` * * `MET` * * `MST` * * `MST7MDT` * * `Mexico/BajaNorte` * * `Mexico/BajaSur` * * `Mexico/General` * * `NZ` * * `NZ-CHAT` * * `Navajo` * * `PRC` * * `PST8PDT` * * `Pacific/Apia` * * `Pacific/Auckland` * * `Pacific/Bougainville` * * `Pacific/Chatham` * * `Pacific/Chuuk` * * `Pacific/Easter` * * `Pacific/Efate` * * `Pacific/Enderbury` * * `Pacific/Fakaofo` * * `Pacific/Fiji` * * `Pacific/Funafuti` * * `Pacific/Galapagos` * * `Pacific/Gambier` * * `Pacific/Guadalcanal` * * `Pacific/Guam` * * `Pacific/Honolulu` * * `Pacific/Johnston` * * `Pacific/Kanton` * * `Pacific/Kiritimati` * * `Pacific/Kosrae` * * `Pacific/Kwajalein` * * `Pacific/Majuro` * * `Pacific/Marquesas` * * `Pacific/Midway` * * `Pacific/Nauru` * * `Pacific/Niue` * * `Pacific/Norfolk` * * `Pacific/Noumea` * * `Pacific/Pago_Pago` * * `Pacific/Palau` * * `Pacific/Pitcairn` * * `Pacific/Pohnpei` * * `Pacific/Ponape` * * `Pacific/Port_Moresby` * * `Pacific/Rarotonga` * * `Pacific/Saipan` * * `Pacific/Samoa` * * `Pacific/Tahiti` * * `Pacific/Tarawa` * * `Pacific/Tongatapu` * * `Pacific/Truk` * * `Pacific/Wake` * * `Pacific/Wallis` * * `Pacific/Yap` * * `Poland` * * `Portugal` * * `ROC` * * `ROK` * * `Singapore` * * `Turkey` * * `UCT` * * `US/Alaska` * * `US/Aleutian` * * `US/Arizona` * * `US/Central` * * `US/East-Indiana` * * `US/Eastern` * * `US/Hawaii` * * `US/Indiana-Starke` * * `US/Michigan` * * `US/Mountain` * * `US/Pacific` * * `US/Samoa` * * `UTC` * * `Universal` * * `W-SU` * * `WET` * * `Zulu` * * `localtime` */ timezone?: 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Asmera' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Timbuktu' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/ComodRivadavia' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Atka' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Buenos_Aires' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Catamarca' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Coral_Harbour' | 'America/Cordoba' | 'America/Costa_Rica' | 'America/Coyhaique' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Ensenada' | 'America/Fort_Nelson' | 'America/Fort_Wayne' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Godthab' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Indianapolis' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Jujuy' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Knox_IN' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Louisville' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Mendoza' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montreal' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nipigon' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Pangnirtung' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Acre' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rainy_River' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Rosario' | 'America/Santa_Isabel' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Shiprock' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Thunder_Bay' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Virgin' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'America/Yellowknife' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/South_Pole' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Ashkhabad' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Calcutta' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Chongqing' | 'Asia/Chungking' | 'Asia/Colombo' | 'Asia/Dacca' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Harbin' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Istanbul' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kashgar' | 'Asia/Kathmandu' | 'Asia/Katmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macao' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Rangoon' | 'Asia/Riyadh' | 'Asia/Saigon' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Tel_Aviv' | 'Asia/Thimbu' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ujung_Pandang' | 'Asia/Ulaanbaatar' | 'Asia/Ulan_Bator' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faeroe' | 'Atlantic/Faroe' | 'Atlantic/Jan_Mayen' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/ACT' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Canberra' | 'Australia/Currie' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/LHI' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/NSW' | 'Australia/North' | 'Australia/Perth' | 'Australia/Queensland' | 'Australia/South' | 'Australia/Sydney' | 'Australia/Tasmania' | 'Australia/Victoria' | 'Australia/West' | 'Australia/Yancowinna' | 'Brazil/Acre' | 'Brazil/DeNoronha' | 'Brazil/East' | 'Brazil/West' | 'CET' | 'CST6CDT' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Canada/Saskatchewan' | 'Canada/Yukon' | 'Chile/Continental' | 'Chile/EasterIsland' | 'Cuba' | 'EET' | 'EST' | 'EST5EDT' | 'Egypt' | 'Eire' | 'Etc/GMT' | 'Etc/GMT+0' | 'Etc/GMT+1' | 'Etc/GMT+10' | 'Etc/GMT+11' | 'Etc/GMT+12' | 'Etc/GMT+2' | 'Etc/GMT+3' | 'Etc/GMT+4' | 'Etc/GMT+5' | 'Etc/GMT+6' | 'Etc/GMT+7' | 'Etc/GMT+8' | 'Etc/GMT+9' | 'Etc/GMT-0' | 'Etc/GMT-1' | 'Etc/GMT-10' | 'Etc/GMT-11' | 'Etc/GMT-12' | 'Etc/GMT-13' | 'Etc/GMT-14' | 'Etc/GMT-2' | 'Etc/GMT-3' | 'Etc/GMT-4' | 'Etc/GMT-5' | 'Etc/GMT-6' | 'Etc/GMT-7' | 'Etc/GMT-8' | 'Etc/GMT-9' | 'Etc/GMT0' | 'Etc/Greenwich' | 'Etc/UCT' | 'Etc/UTC' | 'Etc/Universal' | 'Etc/Zulu' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belfast' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kiev' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Nicosia' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Tiraspol' | 'Europe/Ulyanovsk' | 'Europe/Uzhgorod' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zaporozhye' | 'Europe/Zurich' | 'GB' | 'GB-Eire' | 'GMT' | 'GMT+0' | 'GMT-0' | 'GMT0' | 'Greenwich' | 'HST' | 'Hongkong' | 'Iceland' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Iran' | 'Israel' | 'Jamaica' | 'Japan' | 'Kwajalein' | 'Libya' | 'MET' | 'MST' | 'MST7MDT' | 'Mexico/BajaNorte' | 'Mexico/BajaSur' | 'Mexico/General' | 'NZ' | 'NZ-CHAT' | 'Navajo' | 'PRC' | 'PST8PDT' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Enderbury' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Johnston' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Ponape' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Samoa' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Truk' | 'Pacific/Wake' | 'Pacific/Wallis' | 'Pacific/Yap' | 'Poland' | 'Portugal' | 'ROC' | 'ROK' | 'Singapore' | 'Turkey' | 'UCT' | 'US/Alaska' | 'US/Aleutian' | 'US/Arizona' | 'US/Central' | 'US/East-Indiana' | 'US/Eastern' | 'US/Hawaii' | 'US/Indiana-Starke' | 'US/Michigan' | 'US/Mountain' | 'US/Pacific' | 'US/Samoa' | 'UTC' | 'Universal' | 'W-SU' | 'WET' | 'Zulu' | 'localtime' | ''; /** * How many consecutive missed or failed check-ins in a row before creating a new issue. */ failure_issue_threshold?: number | null; /** * How many successful check-ins in a row before resolving an issue. */ recovery_threshold?: number | null; }; /** * Uniquely identifies your monitor within your organization. Changing this slug will require updates to any instrumented check-in calls. */ slug?: string; /** * Status of the monitor. Disabled monitors will not accept events and will not count towards the monitor quota. * * * `active` * * `disabled` */ status?: 'active' | 'disabled'; /** * The ID of the team or user that owns the monitor. (eg. user:51 or team:6) */ owner?: string | null; /** * Disable creation of monitor incidents */ is_muted?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the monitor. */ monitor_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/monitors/{monitor_id_or_slug}/'; }; export type UpdateOrganizationMonitorErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationMonitorResponses = { 200: { alertRule?: { targets: Array<{ targetIdentifier: number; targetType: string; }>; environment: string; }; id: string; name: string; slug: string; status: string; isMuted: boolean; isUpserting: boolean; config: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; dateCreated: string; project: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }; environments: { name: string; status: string; isMuted: boolean; dateCreated: string; lastCheckIn: string; nextCheckIn: string; nextCheckInLatest: string; activeIncident: { startingTimestamp: string; resolvingTimestamp: string; brokenNotice: { userNotifiedTimestamp: string; environmentMutedTimestamp: string; } | null; } | null; }; owner: { type: 'user' | 'team'; id: string; name: string; email?: string; }; }; }; export type UpdateOrganizationMonitorResponse = UpdateOrganizationMonitorResponses[keyof UpdateOrganizationMonitorResponses]; export type ListOrganizationMonitorCheckinsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the monitor. */ monitor_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/monitors/{monitor_id_or_slug}/checkins/'; }; export type ListOrganizationMonitorCheckinsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationMonitorCheckinsResponses = { 200: Array<{ groups?: Array; id: string; environment: string; status: string; duration: number | null; dateCreated: string; dateAdded: string; dateUpdated: string; dateInProgress: string | null; dateClock: string; expectedTime: string; monitorConfig: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; }>; }; export type ListOrganizationMonitorCheckinsResponse = ListOrganizationMonitorCheckinsResponses[keyof ListOrganizationMonitorCheckinsResponses]; export type ListOrganizationNotificationsActionsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The legacy project slug filter. Prefer `project`, which accepts project IDs or slugs. Use `$all` to include all available projects. For example, the following are valid parameters: * - `/?projectSlug=$all` * - `/?projectSlug=android&projectSlug=javascript-react` * */ project_id_or_slug?: Array; /** * Type of the trigger that causes the notification. The only supported value right now is: `spike-protection` */ triggerType?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/notifications/actions/'; }; export type ListOrganizationNotificationsActionsErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type ListOrganizationNotificationsActionsResponses = { 201: { id: number; organizationId: number; integrationId: number | null; sentryAppId: number | null; projects: Array; serviceType: string | null; triggerType: string; targetType: string | null; targetIdentifier: string | null; targetDisplay: string | null; }; }; export type ListOrganizationNotificationsActionsResponse = ListOrganizationNotificationsActionsResponses[keyof ListOrganizationNotificationsActionsResponses]; export type CreateOrganizationNotificationsActionData = { /** * Django Rest Framework serializer for incoming NotificationAction API payloads */ body: { /** * Type of the trigger that causes the notification. The only supported trigger right now is: `spike-protection`. */ trigger_type: string; /** * Service that is used for sending the notification. * - `email` * - `slack` * - `sentry_notification` * - `pagerduty` * - `opsgenie` * */ service_type: string; /** * ID of the integration used as the notification service. See * [List Integrations](https://docs.sentry.io/api/integrations/list-an-organizations-available-integrations/) * to retrieve a full list of integrations. * * Required if **service_type** is `slack`, `pagerduty` or `opsgenie`. * */ integration_id?: number; /** * ID of the notification target, like a Slack channel ID. * * Required if **service_type** is `slack` or `opsgenie`. * */ target_identifier?: string; /** * Name of the notification target, like a Slack channel name. * * Required if **service_type** is `slack` or `opsgenie`. * */ target_display?: string; /** * List of project IDs or slugs that the Notification Action is created for. */ projects?: Array; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/notifications/actions/'; }; export type CreateOrganizationNotificationsActionErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type CreateOrganizationNotificationsActionResponses = { 201: { id: number; organizationId: number; integrationId: number | null; sentryAppId: number | null; projects: Array; serviceType: string | null; triggerType: string; targetType: string | null; targetIdentifier: string | null; targetDisplay: string | null; }; }; export type CreateOrganizationNotificationsActionResponse = CreateOrganizationNotificationsActionResponses[keyof CreateOrganizationNotificationsActionResponses]; export type DeleteOrganizationNotificationsActionData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * ID of the notification action to retrieve */ action_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/notifications/actions/{action_id}/'; }; export type DeleteOrganizationNotificationsActionResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationNotificationsActionResponse = DeleteOrganizationNotificationsActionResponses[keyof DeleteOrganizationNotificationsActionResponses]; export type GetOrganizationNotificationsActionData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * ID of the notification action to retrieve */ action_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/notifications/actions/{action_id}/'; }; export type GetOrganizationNotificationsActionResponses = { 200: { id: number; organizationId: number; integrationId: number | null; sentryAppId: number | null; projects: Array; serviceType: string | null; triggerType: string; targetType: string | null; targetIdentifier: string | null; targetDisplay: string | null; }; }; export type GetOrganizationNotificationsActionResponse = GetOrganizationNotificationsActionResponses[keyof GetOrganizationNotificationsActionResponses]; export type UpdateOrganizationNotificationsActionData = { /** * Django Rest Framework serializer for incoming NotificationAction API payloads */ body: { /** * Type of the trigger that causes the notification. The only supported trigger right now is: `spike-protection`. */ trigger_type: string; /** * Service that is used for sending the notification. * - `email` * - `slack` * - `sentry_notification` * - `pagerduty` * - `opsgenie` * */ service_type: string; /** * ID of the integration used as the notification service. See * [List Integrations](https://docs.sentry.io/api/integrations/list-an-organizations-available-integrations/) * to retrieve a full list of integrations. * * Required if **service_type** is `slack`, `pagerduty` or `opsgenie`. * */ integration_id?: number; /** * ID of the notification target, like a Slack channel ID. * * Required if **service_type** is `slack` or `opsgenie`. * */ target_identifier?: string; /** * Name of the notification target, like a Slack channel name. * * Required if **service_type** is `slack` or `opsgenie`. * */ target_display?: string; /** * List of project IDs or slugs that the Notification Action is created for. */ projects?: Array; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * ID of the notification action to retrieve */ action_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/notifications/actions/{action_id}/'; }; export type UpdateOrganizationNotificationsActionErrors = { /** * Bad Request */ 400: unknown; }; export type UpdateOrganizationNotificationsActionResponses = { 202: { id: number; organizationId: number; integrationId: number | null; sentryAppId: number | null; projects: Array; serviceType: string | null; triggerType: string; targetType: string | null; targetIdentifier: string | null; targetDisplay: string | null; }; }; export type UpdateOrganizationNotificationsActionResponse = UpdateOrganizationNotificationsActionResponses[keyof UpdateOrganizationNotificationsActionResponses]; export type GetOrganizationPreprodArtifactInstallDetailsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the build artifact. */ artifact_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/preprodartifacts/{artifact_id}/install-details/'; }; export type GetOrganizationPreprodArtifactInstallDetailsErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationPreprodArtifactInstallDetailsResponses = { 200: { buildId: string; state: string; appInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; }; gitInfo: { headSha: string | null; baseSha: string | null; provider: string | null; headRepoName: string | null; baseRepoName: string | null; headRef: string | null; baseRef: string | null; prNumber: number | null; } | null; platform: string | null; projectId: string; projectSlug: string; buildConfiguration: string | null; isInstallable: boolean; installUrl: string | null; installUrlExpiresAt: string | null; downloadCount: number; releaseNotes: string | null; installGroups: Array | null; isCodeSignatureValid: boolean | null; profileName: string | null; codesigningType: string | null; }; }; export type GetOrganizationPreprodArtifactInstallDetailsResponse = GetOrganizationPreprodArtifactInstallDetailsResponses[keyof GetOrganizationPreprodArtifactInstallDetailsResponses]; export type GetOrganizationPreprodArtifactSizeAnalysisData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the build artifact. */ artifact_id: string; }; query?: { /** * Optional ID of the base artifact to compare against. If not provided, uses the default base head artifact. */ baseArtifactId?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/preprodartifacts/{artifact_id}/size-analysis/'; }; export type GetOrganizationPreprodArtifactSizeAnalysisErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationPreprodArtifactSizeAnalysisResponses = { 200: { buildId: string; state: string; appInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; }; gitInfo: { headSha: string | null; baseSha: string | null; provider: string | null; headRepoName: string | null; baseRepoName: string | null; headRef: string | null; baseRef: string | null; prNumber: number | null; } | null; errorCode: string | null; errorMessage: string | null; downloadSize: number | null; installSize: number | null; analysisDuration: number | null; analysisVersion: string | null; baseBuildId: string | null; baseAppInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; } | null; insights: { [key: string]: unknown; } | null; appComponents: Array<{ componentType: string; name: string; appId: string; path: string; downloadSize: number; installSize: number; }> | null; comparisons: Array<{ metricsArtifactType: string; identifier: string | null; state: string; errorCode: string | null; errorMessage: string | null; sizeMetricDiff: { metricsArtifactType: string; identifier: string | null; headInstallSize: number; headDownloadSize: number; baseInstallSize: number; baseDownloadSize: number; } | null; diffItems: Array<{ sizeDiff: number; headSize: number | null; baseSize: number | null; path: string; itemType: string | null; type: string; diffItems: Array | null; }> | null; insightDiffItems: Array<{ insightType: string; status: string; totalSavingsChange: number; fileDiffs: Array<{ sizeDiff: number; headSize: number | null; baseSize: number | null; path: string; itemType: string | null; type: string; diffItems: Array | null; }>; groupDiffs: Array<{ sizeDiff: number; headSize: number | null; baseSize: number | null; path: string; itemType: string | null; type: string; diffItems: Array | null; }>; }> | null; }> | null; }; }; export type GetOrganizationPreprodArtifactSizeAnalysisResponse = GetOrganizationPreprodArtifactSizeAnalysisResponses[keyof GetOrganizationPreprodArtifactSizeAnalysisResponses]; export type DeleteOrganizationPreprodArtifactSnapshotData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the snapshot to delete. */ snapshot_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/preprodartifacts/snapshots/{snapshot_id}/'; }; export type DeleteOrganizationPreprodArtifactSnapshotErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationPreprodArtifactSnapshotResponses = { /** * No response body */ 204: void; }; export type DeleteOrganizationPreprodArtifactSnapshotResponse = DeleteOrganizationPreprodArtifactSnapshotResponses[keyof DeleteOrganizationPreprodArtifactSnapshotResponses]; export type GetOrganizationPreprodArtifactSnapshotData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the snapshot. */ snapshot_id: string; }; query?: { /** * Set to '1' or 'true' to strip image metadata to display_name, image_file_name, group, and description only. */ compact_metadata?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/preprodartifacts/snapshots/{snapshot_id}/'; }; export type GetOrganizationPreprodArtifactSnapshotErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationPreprodArtifactSnapshotResponses = { 200: { head_artifact_id?: string; base_artifact_id?: string | null; project_id?: string; comparison_type?: string; state?: string; vcs_info?: { head_sha?: string | null; base_sha?: string | null; provider?: string | null; head_repo_name?: string | null; base_repo_name?: string | null; head_ref?: string | null; base_ref?: string | null; pr_number?: number | null; }; app_id?: string | null; is_selective?: boolean; images?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; image_count?: number; added?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; added_count?: number; removed?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; removed_count?: number; renamed?: Array<{ base_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; head_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; diff_image_key?: string | null; diff?: number | null; }>; renamed_count?: number; changed?: Array<{ base_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; head_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; diff_image_key?: string | null; diff?: number | null; }>; changed_count?: number; unchanged?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; unchanged_count?: number; errored?: Array<{ base_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; head_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }; diff_image_key?: string | null; diff?: number | null; }>; errored_count?: number; skipped?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; }>; skipped_count?: number; diff_threshold?: number | null; comparison_state?: string | null; approval_status?: string | null; comparison_error_message?: string | null; approvers?: Array<{ id?: string | null; name?: string | null; email?: string | null; username?: string | null; avatar_url?: string | null; approved_at?: string | null; source?: 'sentry' | 'github'; }>; }; }; export type GetOrganizationPreprodArtifactSnapshotResponse = GetOrganizationPreprodArtifactSnapshotResponses[keyof GetOrganizationPreprodArtifactSnapshotResponses]; export type GetOrganizationPreprodArtifactSnapshotImageData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the snapshot. */ snapshot_id: string; /** * The image filename or content hash. */ image_identifier: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/preprodartifacts/snapshots/{snapshot_id}/images/{image_identifier}/'; }; export type GetOrganizationPreprodArtifactSnapshotImageErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationPreprodArtifactSnapshotImageResponses = { 200: { image_file_name?: string; comparison_status?: string | null; head_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; diff_threshold?: number | null; description?: string | null; tags?: { [key: string]: string; } | null; image_url?: string; } | null; base_image?: { key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; diff_threshold?: number | null; description?: string | null; tags?: { [key: string]: string; } | null; image_url?: string; } | null; diff_image_url?: string | null; diff_percentage?: number | null; previous_image_file_name?: string | null; }; }; export type GetOrganizationPreprodArtifactSnapshotImageResponse = GetOrganizationPreprodArtifactSnapshotImageResponses[keyof GetOrganizationPreprodArtifactSnapshotImageResponses]; export type GetOrganizationPreprodArtifactSnapshotLatestBaseData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * App identifier to match. */ app_id: string; /** * Git branch name to filter on. */ branch?: string; /** * Project ID or slug to scope the lookup. */ project?: number | string; /** * Set to '1' or 'true' to strip image metadata to display_name, image_file_name, group, description, and image_url only. */ compact_metadata?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/preprodartifacts/snapshots/latest-base/'; }; export type GetOrganizationPreprodArtifactSnapshotLatestBaseErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationPreprodArtifactSnapshotLatestBaseResponses = { 200: { head_artifact_id?: string; project_id?: string; project_slug?: string; app_id?: string | null; image_count?: number; images?: Array<{ key?: string; display_name?: string | null; group?: string | null; image_file_name?: string; width?: number; height?: number; canvas_theme?: 'light' | 'dark' | null; image_url?: string; }>; diff_threshold?: number | null; date_added?: string; vcs_info?: { head_sha?: string | null; base_sha?: string | null; head_ref?: string | null; base_ref?: string | null; head_repo_name?: string | null; pr_number?: number | null; }; }; }; export type GetOrganizationPreprodArtifactSnapshotLatestBaseResponse = GetOrganizationPreprodArtifactSnapshotLatestBaseResponses[keyof GetOrganizationPreprodArtifactSnapshotLatestBaseResponses]; export type ListOrganizationProfilingChunksData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * The ID or slug of the project to fetch chunks for. Exactly one project must be specified. */ project: string; /** * The continuous-profiler ID to fetch chunks for. */ profiler_id: string; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/profiling/chunks/'; }; export type ListOrganizationProfilingChunksErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationProfilingChunksResponses = { 200: { [key: string]: unknown; }; }; export type ListOrganizationProfilingChunksResponse = ListOrganizationProfilingChunksResponses[keyof ListOrganizationProfilingChunksResponses]; export type GetOrganizationProfilingFlamegraphData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The name of environments to filter by. */ environment?: Array; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * Source dataset to build the flamegraph from. Defaults to `functions` when `fingerprint` is set and `transactions` otherwise. */ dataSource?: 'functions' | 'profiles' | 'spans' | 'transactions'; /** * A UInt32 function fingerprint. Only valid when `dataSource=functions`. */ fingerprint?: number; /** * Sentry [search syntax](https://docs.sentry.io/concepts/search/) to filter the candidate profiles. */ query?: string; /** * Optional expansions. Pass `metrics` to include flamegraph metric aggregates in the response. */ expand?: Array<'metrics'>; }; url: '/api/0/organizations/{organization_id_or_slug}/profiling/flamegraph/'; }; export type GetOrganizationProfilingFlamegraphErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationProfilingFlamegraphResponses = { 200: { [key: string]: unknown; }; }; export type GetOrganizationProfilingFlamegraphResponse = GetOrganizationProfilingFlamegraphResponses[keyof GetOrganizationProfilingFlamegraphResponses]; export type ListOrganizationProjectKeysData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * Filter keys by team slug or ID. If provided, only keys for projects belonging to this team will be returned. */ team?: string; /** * Filter keys by status. Options are 'active' or 'inactive'. * * * `active` * * `inactive` */ status?: 'active' | 'inactive'; }; url: '/api/0/organizations/{organization_id_or_slug}/project-keys/'; }; export type ListOrganizationProjectKeysErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationProjectKeysResponses = { 200: Array<{ id: string; name: string; label: string; public: string | null; secret: string | null; projectId: number; isActive: boolean; rateLimit: { window: number; count: number; } | null; dsn: { secret: string; public: string; csp: string; security: string; minidump: string; nel: string; unreal: string; crons: string; cdn: string; playstation: string; integration: string; otlp_traces: string; otlp_logs: string; }; browserSdkVersion: string; browserSdk: { choices: Array>; }; dateCreated: string | null; dynamicSdkLoaderOptions: { hasReplay: boolean; hasPerformance: boolean; hasDebug: boolean; hasFeedback: boolean; hasLogsAndMetrics: boolean; }; useCase?: string; }>; }; export type ListOrganizationProjectKeysResponse = ListOrganizationProjectKeysResponses[keyof ListOrganizationProjectKeysResponses]; export type ListOrganizationProjectsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * Filter projects by name or slug. */ query?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/projects/'; }; export type ListOrganizationProjectsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationProjectsResponses = { 200: Array<{ latestDeploys?: { [key: string]: { [key: string]: string; }; } | null; options?: { [key: string]: unknown; }; stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; team: { id: string; name: string; slug: string; } | null; teams: Array<{ id: string; name: string; slug: string; }>; platforms: Array; hasUserReports: boolean; environments: Array; latestRelease: { version: string; } | null; }>; }; export type ListOrganizationProjectsResponse = ListOrganizationProjectsResponses[keyof ListOrganizationProjectsResponses]; export type CreateOrganizationProjectData = { body: { /** * The name for the project. */ name: string; /** * Uniquely identifies a project and is used for the interface. * If not provided, it is automatically generated from the name. */ slug?: string | null; /** * The platform for the project. */ platform?: string | null; /** * * Defaults to true where the behavior is to alert the user on every new * issue. Setting this to false will turn this off and the user must create * their own alerts to be notified of new issues. * */ default_rules?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/projects/'; }; export type CreateOrganizationProjectErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; /** * Conflict */ 409: unknown; }; export type CreateOrganizationProjectResponses = { 201: { latestDeploys?: { [key: string]: { [key: string]: string; }; } | null; options?: { [key: string]: unknown; }; stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; team: { id: string; name: string; slug: string; } | null; teams: Array<{ id: string; name: string; slug: string; }>; platforms: Array; hasUserReports: boolean; environments: Array; latestRelease: { version: string; } | null; }; }; export type CreateOrganizationProjectResponse = CreateOrganizationProjectResponses[keyof CreateOrganizationProjectResponses]; export type CreateOrganizationProjectDetectorData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * Name of the monitor. */ name: string; /** * The type of monitor - `metric_issue`. */ type: string; /** * The IDs of the alerts to connect this monitor to. Use the 'Fetch Alerts' endpoint to find the IDs. */ workflow_ids?: Array; /** * * The data sources for the monitor to use based on what you want to measure. * * **Number of Errors Metric Monitor** * - `eventTypes`: Any of `error` or `default`. * ```json * [ * { * "aggregate": "count()", * "dataset" : "events", * "environment": "prod", * "eventTypes": ["default", "error"], * "query": "is:unresolved", * "queryType": 0, * "timeWindow": 3600, * }, * ], * ``` * * **Users Experiencing Errors Metric Monitor** * - `eventTypes`: Any of `error` or `default`. * ```json * [ * { * "aggregate": "count_unique(tags[sentry:user])", * "dataset" : "events", * "environment": "prod", * "eventTypes": ["default", "error"], * "query": "is:unresolved", * "queryType": 0, * "timeWindow": 3600, * }, * ], * ``` * * * **Throughput Metric Monitor** * ```json * [ * { * "aggregate":"count(span.duration)", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Duration Metric Monitor** * ```json * [ * { * "aggregate":"p95(span.duration)", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Failure Rate Metric Monitor** * ```json * [ * { * "aggregate":"failure_rate()", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Largest Contentful Paint Metric Monitor** * - `dataset`: If a custom percentile is used, dataset is `transactions`. Otherwise, dataset is `events_analytics_platform`. * - `aggregate`: Valid values are `avg(measurements.lcp)`, `p50(measurements.lcp)`, `p75(measurements.lcp)`, `p95(measurements.lcp)`, `p99(measurements.lcp)`, `p100(measurements.lcp)`, and `percentile(measurements.lcp,x)`, where `x` is your custom percentile. * * ```json * [ * { * "aggregate":"p95(measurements.lcp)", * "dataset":"events_analytics_platform", * "environment":"prod", * "eventTypes":["trace_item_span"] * "query":"", * "queryType":1, * "timeWindow":3600, * "extrapolationMode":"unknown", * }, * ], * ``` * * **Custom Metric Monitor** * - `dataset`: If a custom percentile is used, dataset is `transactions`. Otherwise, dataset is `events_analytics_platform`. * - `aggregate`: Valid values are: * `avg(x)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p50(x)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p75(x)`, where x is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p95(x)`, where x is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p99(x)`, where x is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `p100(x)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`. * `percentile(x,y)`, where `x` is `transaction.duration`, `measurements.cls`, `measurements.fcp`, `measurements.fid`, `measurements.fp`, `measurements.lcp`, `measurements.ttfb`, or `measurements.ttfb.requesttime`, and `y` is the custom percentile. * `failure_rate()` * `apdex(x)`, where `x` is the value of the Apdex score. * `count()` * * ```json * [ * { * "aggregate": "p75(measurements.ttfb)" * "dataset": "events_analytics_platform", * "queryType": 1, * }, * ], * */ data_sources?: Array; /** * * The issue detection type configuration. * * * - `detectionType` * - `static`: Threshold based monitor * - `percent`: Change based monitor * - `dynamic`: Dynamic monitor * - `comparisonDelta`: If selecting a **change** detection type, the comparison delta is the time period at which to compare against in minutes. * For example, a value of 3600 compares the metric tracked against data 1 hour ago. * - `300`: 5 minutes * - `900`: 15 minutes * - `3600`: 1 hour * - `86400`: 1 day * - `604800`: 1 week * - `2592000`: 1 month * * **Threshold** * ```json * { * "detectionType": "static", * } * ``` * **Change** * ```json * { * "detectionType": "percent", * "comparisonDelta": 3600, * } * ``` * **Dynamic** * ```json * { * "detectionType": "dynamic", * } * ``` * */ config?: { [key: string]: unknown; }; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ condition_group?: { id?: number; /** * * `any` * * `any-short` * * `all` * * `none` */ logic_type: 'any' | 'any-short' | 'all' | 'none'; conditions?: Array; }; /** * * The ID user or team who owns the monitor or alert prefaced by the string 'user' or 'team'. * * **User** * ```json * "user:123456" * ``` * * **Team** * ```json * "team:456789" * ``` * */ owner?: string | null; /** * A description of the monitor. Will be used in the resulting issue. */ description?: string | null; /** * Set to False if you want to disable the monitor. */ enabled?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/projects/{project_id_or_slug}/detectors/'; }; export type CreateOrganizationProjectDetectorErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type CreateOrganizationProjectDetectorResponses = { 201: { owner?: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; createdBy?: string | null; latestGroup?: { [key: string]: unknown; } | null; description?: string | null; id: string; projectId: string | null; name: string; type: string; workflowIds: Array | null; dateCreated: string; dateUpdated: string; dataSources: Array<{ [key: string]: unknown; }> | null; conditionGroup: { [key: string]: unknown; } | null; config: { [key: string]: unknown; }; enabled: boolean; }; }; export type CreateOrganizationProjectDetectorResponse = CreateOrganizationProjectDetectorResponses[keyof CreateOrganizationProjectDetectorResponses]; export type ListOrganizationRelayUsageData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/relay_usage/'; }; export type ListOrganizationRelayUsageErrors = { /** * Not Found */ 404: unknown; }; export type ListOrganizationRelayUsageResponses = { 200: Array<{ relayId: string; version: string; publicKey: string | null; firstSeen: string; lastSeen: string; }>; }; export type ListOrganizationRelayUsageResponse = ListOrganizationRelayUsageResponses[keyof ListOrganizationRelayUsageResponses]; export type ListOrganizationReleaseThresholdStatusesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * The start of the time series range as an explicit datetime, either in UTC ISO8601 or epoch seconds. Use along with `end`. */ start: string; /** * The inclusive end of the time series range as an explicit datetime, either in UTC ISO8601 or epoch seconds. Use along with `start`. */ end: string; /** * A list of environment names to filter your results by. */ environment?: Array; /** * A list of project slugs to filter your results by. */ projectSlug?: Array; /** * A list of release versions to filter your results by. */ release?: Array; /** * A list of project IDs or slugs to filter your results by. */ project?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/release-threshold-statuses/'; }; export type ListOrganizationReleaseThresholdStatusesErrors = { /** * Bad Request */ 400: unknown; }; export type ListOrganizationReleaseThresholdStatusesResponses = { 200: { [key: string]: Array<{ id?: string; date_added?: string; environment?: { [key: string]: unknown; } | null; project?: { [key: string]: unknown; }; release?: string; threshold_type?: 'total_error_count' | 'new_issue_count' | 'unhandled_issue_count' | 'regressed_issue_count' | 'failure_rate' | 'crash_free_session_rate' | 'crash_free_user_rate'; trigger_type?: 'over' | 'under'; value?: number; window_in_seconds?: number; end: string; is_healthy: boolean; key: string; project_slug: string; project_id: number; start: string; metric_value: number | number | { [key: string]: unknown; } | null; }>; }; }; export type ListOrganizationReleaseThresholdStatusesResponse = ListOrganizationReleaseThresholdStatusesResponses[keyof ListOrganizationReleaseThresholdStatusesResponses]; export type ListOrganizationReleasesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The name of environments to filter by. */ environment?: Array; /** * Case-insensitive substring match against the release version. */ query?: string; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/releases/'; }; export type ListOrganizationReleasesErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationReleasesResponses = { 200: Array<{ ref?: string | null; url?: string | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; owner?: { [key: string]: unknown; } | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; firstEvent?: string | null; lastEvent?: string | null; currentProjectMeta?: { [key: string]: unknown; } | null; userAgent?: string | null; adoptionStages?: { [key: string]: unknown; } | null; id: number; version: string; newGroups: number; status: string; shortVersion: string; versionInfo: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; data: { [key: string]: unknown; }; commitCount: number; deployCount: number; authors: Array<{ identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }>; projects: Array<{ healthData?: { durationP50?: number | null; durationP90?: number | null; crashFreeUsers?: number | null; crashFreeSessions?: number | null; totalUsers?: number | null; totalUsers24h?: number | null; totalProjectUsers24h?: number | null; totalSessions?: number | null; totalSessions24h?: number | null; totalProjectSessions24h?: number | null; adoption?: number | null; sessionsAdoption?: number | null; sessionsCrashed: number; sessionsErrored: number; hasHealthData: boolean; stats: { [key: string]: unknown; }; } | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; id: number; slug: string; name: string; platform: string | null; platforms: Array | null; hasHealthData: boolean; newGroups: number; }>; }>; }; export type ListOrganizationReleasesResponse2 = ListOrganizationReleasesResponses[keyof ListOrganizationReleasesResponses]; export type CreateOrganizationReleaseData = { body: { /** * A version identifier for this release. Can be a version number, a commit hash, and so on. */ version: string; /** * A list of project slugs that are involved in this release. */ projects: Array; /** * An optional commit reference. This is useful if a tagged version has been provided. */ ref?: string | null; /** * A URL that points to the release. For instance, this can be the path to an online interface to the source code, such as a GitHub URL. */ url?: string | null; /** * An optional date that indicates when the release went live. If not provided the current time is used. */ dateReleased?: string | null; /** * An optional list of commit data to be associated. */ commits?: Array<{ id: string; repository?: string | null; message?: string | null; author_name?: string | null; author_email?: string | null; timestamp?: string | null; patch_set?: Array<{ path: string; type: string; }> | null; }>; /** * The status of the release. Can be `open` or `archived`. */ status?: string; /** * The username of the user to set as the release owner. */ owner?: string; /** * (Deprecated) Use `refs` instead. An optional list of head commits to associate with the release, one per repository. */ headCommits?: Array<{ currentId: string; repository: string; previousId?: string | null; }>; /** * An optional list of commit references, one per repository, used to associate commits with the release. */ refs?: Array<{ commit: string; repository: string; previousCommit?: string | null; }>; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/releases/'; }; export type CreateOrganizationReleaseErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; }; export type CreateOrganizationReleaseResponses = { 201: { ref?: string | null; url?: string | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; owner?: { [key: string]: unknown; } | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; firstEvent?: string | null; lastEvent?: string | null; currentProjectMeta?: { [key: string]: unknown; } | null; userAgent?: string | null; adoptionStages?: { [key: string]: unknown; } | null; id: number; version: string; newGroups: number; status: string; shortVersion: string; versionInfo: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; data: { [key: string]: unknown; }; commitCount: number; deployCount: number; authors: Array<{ identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }>; projects: Array<{ healthData?: { durationP50?: number | null; durationP90?: number | null; crashFreeUsers?: number | null; crashFreeSessions?: number | null; totalUsers?: number | null; totalUsers24h?: number | null; totalProjectUsers24h?: number | null; totalSessions?: number | null; totalSessions24h?: number | null; totalProjectSessions24h?: number | null; adoption?: number | null; sessionsAdoption?: number | null; sessionsCrashed: number; sessionsErrored: number; hasHealthData: boolean; stats: { [key: string]: unknown; }; } | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; id: number; slug: string; name: string; platform: string | null; platforms: Array | null; hasHealthData: boolean; newGroups: number; }>; }; /** * Already Reported */ 208: unknown; }; export type CreateOrganizationReleaseResponse2 = CreateOrganizationReleaseResponses[keyof CreateOrganizationReleaseResponses]; export type DeleteOrganizationReleaseData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/'; }; export type DeleteOrganizationReleaseErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationReleaseResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationReleaseResponse = DeleteOrganizationReleaseResponses[keyof DeleteOrganizationReleaseResponses]; export type GetOrganizationReleaseData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: { /** * Deprecated. Use project instead. * * @deprecated */ project_id?: string; /** * The project ID or slug to filter by. Overrides project_id when both are sent. */ project?: number | string; /** * Whether or not to include health data with the release. By default, this is false. */ health?: boolean; /** * Whether or not to include adoption stages with the release. By default, this is false. */ adoptionStages?: boolean; /** * The period of time used to query summary stats for the release. By default, this is 14d. */ summaryStatsPeriod?: '14d' | '1d' | '1h' | '24h' | '2d' | '30d' | '48h' | '7d' | '90d'; /** * The period of time used to query health stats for the release. By default, this is 24h if health is enabled. */ healthStatsPeriod?: '14d' | '1d' | '1h' | '24h' | '2d' | '30d' | '48h' | '7d' | '90d'; /** * The field used to sort results by. By default, this is `date`. */ sort?: 'crash_free_sessions' | 'crash_free_users' | 'date' | 'sessions' | 'users'; /** * Release statuses that you can filter by. */ status?: 'archived' | 'open'; /** * Filters results by using [query syntax](/product/sentry-basics/search/). * * Example: `query=(transaction:foo AND release:abc) OR (transaction:[bar,baz] AND release:def)` * */ query?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/'; }; export type GetOrganizationReleaseErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationReleaseResponses = { 200: { ref?: string | null; url?: string | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; owner?: { [key: string]: unknown; } | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; firstEvent?: string | null; lastEvent?: string | null; currentProjectMeta?: { [key: string]: unknown; } | null; userAgent?: string | null; adoptionStages?: { [key: string]: unknown; } | null; id: number; version: string; newGroups: number; status: string; shortVersion: string; versionInfo: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; data: { [key: string]: unknown; }; commitCount: number; deployCount: number; authors: Array<{ identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }>; projects: Array<{ healthData?: { durationP50?: number | null; durationP90?: number | null; crashFreeUsers?: number | null; crashFreeSessions?: number | null; totalUsers?: number | null; totalUsers24h?: number | null; totalProjectUsers24h?: number | null; totalSessions?: number | null; totalSessions24h?: number | null; totalProjectSessions24h?: number | null; adoption?: number | null; sessionsAdoption?: number | null; sessionsCrashed: number; sessionsErrored: number; hasHealthData: boolean; stats: { [key: string]: unknown; }; } | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; id: number; slug: string; name: string; platform: string | null; platforms: Array | null; hasHealthData: boolean; newGroups: number; }>; }; }; export type GetOrganizationReleaseResponse = GetOrganizationReleaseResponses[keyof GetOrganizationReleaseResponses]; export type UpdateOrganizationReleaseData = { body?: { /** * An optional commit reference. This is useful if a tagged version has been provided. */ ref?: string | null; /** * A URL that points to the release. For instance, this can be the path to an online interface to the source code, such as a GitHub URL. */ url?: string | null; /** * An optional date that indicates when the release went live. If not provided the current time is used. */ dateReleased?: string | null; /** * An optional list of commit data to be associated. */ commits?: Array<{ id: string; repository?: string | null; message?: string | null; author_name?: string | null; author_email?: string | null; timestamp?: string | null; patch_set?: Array<{ path: string; type: string; }> | null; }>; /** * An optional way to indicate the start and end commits for each repository included in a release. Head commits must include parameters ``repository`` and ``commit`` (the HEAD SHA). For GitLab repositories, please use the Group name instead of the slug. They can optionally include ``previousCommit`` (the SHA of the HEAD of the previous release), which should be specified if this is the first time you've sent commit data. */ refs?: Array<{ commit: string; repository: string; previousCommit?: string | null; }>; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/'; }; export type UpdateOrganizationReleaseErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationReleaseResponses = { 200: { ref?: string | null; url?: string | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; owner?: { [key: string]: unknown; } | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; firstEvent?: string | null; lastEvent?: string | null; currentProjectMeta?: { [key: string]: unknown; } | null; userAgent?: string | null; adoptionStages?: { [key: string]: unknown; } | null; id: number; version: string; newGroups: number; status: string; shortVersion: string; versionInfo: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; data: { [key: string]: unknown; }; commitCount: number; deployCount: number; authors: Array<{ identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }>; projects: Array<{ healthData?: { durationP50?: number | null; durationP90?: number | null; crashFreeUsers?: number | null; crashFreeSessions?: number | null; totalUsers?: number | null; totalUsers24h?: number | null; totalProjectUsers24h?: number | null; totalSessions?: number | null; totalSessions24h?: number | null; totalProjectSessions24h?: number | null; adoption?: number | null; sessionsAdoption?: number | null; sessionsCrashed: number; sessionsErrored: number; hasHealthData: boolean; stats: { [key: string]: unknown; }; } | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; id: number; slug: string; name: string; platform: string | null; platforms: Array | null; hasHealthData: boolean; newGroups: number; }>; }; }; export type UpdateOrganizationReleaseResponse = UpdateOrganizationReleaseResponses[keyof UpdateOrganizationReleaseResponses]; export type ListOrganizationReleaseCommitsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/commits/'; }; export type ListOrganizationReleaseCommitsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationReleaseCommitsResponses = { 200: Array<{ id: string; message: string | null; dateCreated: string; pullRequest: { id: string; title: string | null; message: string | null; dateCreated: string; mergedAt: string | null; status: 'merged' | 'open' | 'closed' | 'draft' | 'unknown' | null; repository: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }; externalUrl: string; } | null; suspectCommitType: string; repository?: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; } | { [key: string]: unknown; }; releases: Array<{ version: string; shortVersion: string; ref: string | null; url: string | null; dateReleased: string | null; dateCreated: string; }>; }>; }; export type ListOrganizationReleaseCommitsResponse2 = ListOrganizationReleaseCommitsResponses[keyof ListOrganizationReleaseCommitsResponses]; export type ListOrganizationReleaseDeploysData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/deploys/'; }; export type ListOrganizationReleaseDeploysResponses = { 200: Array<{ /** * The ID of the deploy */ id: string; /** * The environment name */ environment: string; /** * An optional date that indicates when the deploy started */ dateStarted: string | null; /** * An optional date that indicates when the deploy ended */ dateFinished: string; /** * The optional name of the deploy */ name: string | null; /** * The optional URL that points to the deploy */ url: string | null; }>; }; export type ListOrganizationReleaseDeploysResponse = ListOrganizationReleaseDeploysResponses[keyof ListOrganizationReleaseDeploysResponses]; export type CreateOrganizationReleaseDeployData = { body: { /** * The environment you're deploying to */ environment: string; /** * The optional name of the deploy */ name?: string | null; /** * The optional URL that points to the deploy */ url?: string | null; /** * An optional date that indicates when the deploy started */ dateStarted?: string | null; /** * An optional date that indicates when the deploy ended. If not provided, the current time is used. */ dateFinished?: string | null; /** * The optional list of project slugs to create a deploy within. If not provided, deploys are created for all of the release's projects. */ projects?: Array; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/deploys/'; }; export type CreateOrganizationReleaseDeployErrors = { /** * Bad Request */ 400: unknown; }; export type CreateOrganizationReleaseDeployResponses = { /** * Serializer for Deploy response objects */ 201: { /** * The ID of the deploy */ id: string; /** * The environment name */ environment: string; /** * An optional date that indicates when the deploy started */ dateStarted: string | null; /** * An optional date that indicates when the deploy ended */ dateFinished: string; /** * The optional name of the deploy */ name: string | null; /** * The optional URL that points to the deploy */ url: string | null; }; }; export type CreateOrganizationReleaseDeployResponse = CreateOrganizationReleaseDeployResponses[keyof CreateOrganizationReleaseDeployResponses]; export type ListOrganizationReleaseFilesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: { /** * If set, only files with these partial names will be returned. */ query?: Array; /** * If set, only files with these exact checksums will be returned. */ checksum?: Array; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/files/'; }; export type ListOrganizationReleaseFilesErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationReleaseFilesResponses = { 200: Array<{ id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }>; }; export type ListOrganizationReleaseFilesResponse = ListOrganizationReleaseFilesResponses[keyof ListOrganizationReleaseFilesResponses]; export type UploadOrganizationReleaseFileData = { /** * Documents the multipart/form-data body of the release file upload endpoints. * * The endpoints read the upload directly off ``request.data``; this serializer * exists to describe the request body in the OpenAPI schema. */ body: { /** * The multipart-encoded file contents to upload. */ file: string; /** * The name (full path) the file will be referenced as, e.g. the full web URI of a JavaScript file. Defaults to the uploaded file's name. */ name?: string; /** * The name of the distribution to associate the file with. */ dist?: string; /** * Headers to attach to the file, each formatted as a `"key:value"` string (for example, to define a content type). May be supplied multiple times. */ header?: Array; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/files/'; }; export type UploadOrganizationReleaseFileErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; /** * Conflict */ 409: unknown; }; export type UploadOrganizationReleaseFileResponses = { 201: { id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }; }; export type UploadOrganizationReleaseFileResponse = UploadOrganizationReleaseFileResponses[keyof UploadOrganizationReleaseFileResponses]; export type DeleteOrganizationReleaseFileData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; /** * The ID of the release file. */ file_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/files/{file_id}/'; }; export type DeleteOrganizationReleaseFileErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationReleaseFileResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationReleaseFileResponse = DeleteOrganizationReleaseFileResponses[keyof DeleteOrganizationReleaseFileResponses]; export type GetOrganizationReleaseFileData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; /** * The ID of the release file. */ file_id: string; }; query?: { /** * If set, download the file contents instead of returning metadata. */ download?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/files/{file_id}/'; }; export type GetOrganizationReleaseFileErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationReleaseFileResponses = { 200: { id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }; }; export type GetOrganizationReleaseFileResponse = GetOrganizationReleaseFileResponses[keyof GetOrganizationReleaseFileResponses]; export type UpdateOrganizationReleaseFileData = { body: { /** * The new name (full path) of the file. */ name: string; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release */ version: string; /** * The ID of the release file. */ file_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/files/{file_id}/'; }; export type UpdateOrganizationReleaseFileErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationReleaseFileResponses = { 200: { id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }; }; export type UpdateOrganizationReleaseFileResponse = UpdateOrganizationReleaseFileResponses[keyof UpdateOrganizationReleaseFileResponses]; export type GetOrganizationReplayCountData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * The data source to query replays from. */ data_source: 'events' | 'search_issues' | 'spans'; /** * The name of environments to filter by. */ environment?: Array; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The legacy project slug filter. Prefer `project`, which accepts project IDs or slugs. Use `$all` to include all available projects. For example, the following are valid parameters: * - `/?projectSlug=$all` * - `/?projectSlug=android&projectSlug=javascript-react` * */ project_id_or_slug?: Array; /** * Filters results by using [query syntax](/product/sentry-basics/search/). * * Example: `query=(transaction:foo AND release:abc) OR (transaction:[bar,baz] AND release:def)` * */ query?: string; /** * If true, return issue IDs rather than counts. */ returnIds?: boolean; }; url: '/api/0/organizations/{organization_id_or_slug}/replay-count/'; }; export type GetOrganizationReplayCountErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type GetOrganizationReplayCountResponses = { 200: { [key: string]: number; }; }; export type GetOrganizationReplayCountResponse = GetOrganizationReplayCountResponses[keyof GetOrganizationReplayCountResponses]; export type ListOrganizationReplaySelectorsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The environment to filter by. */ environment?: Array; /** * This defines the range of the time series, relative to now. The range is given in a `` format. For example `1d` for a one day range. Possible units are `m` for minutes, `h` for hours, `d` for days and `w` for weeks.You must either provide a `statsPeriod`, or a `start` and `end`. */ statsPeriod?: string; /** * This defines the start of the time series range as an explicit datetime, either in UTC ISO8601 or epoch seconds.Use along with `end` instead of `statsPeriod`. */ start?: string; /** * This defines the inclusive end of the time series range as an explicit datetime, either in UTC ISO8601 or epoch seconds.Use along with `start` instead of `statsPeriod`. */ end?: string; /** * A list of project IDs or slugs to filter by. */ project?: Array; /** * A list of project slugs to filter your results by. */ projectSlug?: Array; /** * The field to sort the output by. */ sort?: string; /** * The field to sort the output by. */ sortBy?: string; /** * The field to sort the output by. */ orderBy?: string; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * Filters results by using [query syntax](/product/sentry-basics/search/). * * Example: `query=(transaction:foo AND release:abc) OR (transaction:[bar,baz] AND release:def)` * */ query?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/replay-selectors/'; }; export type ListOrganizationReplaySelectorsErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type ListOrganizationReplaySelectorsResponses = { 200: { data: Array<{ count_dead_clicks?: number; count_rage_clicks?: number; dom_element?: string; element?: { alt: string; aria_label: string; class: Array; component_name: string; id: string; role: string; tag: string; testid: string; title: string; }; project_id?: string; }>; }; }; export type ListOrganizationReplaySelectorsResponse = ListOrganizationReplaySelectorsResponses[keyof ListOrganizationReplaySelectorsResponses]; export type ListOrganizationReplaysData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * * This defines the range of the time series, relative to now. The range is given in a * `` format. For example `1d` for a one day range. Possible units are `m` for * minutes, `h` for hours, `d` for days and `w` for weeks. You must either provide a * `statsPeriod`, or a `start` and `end`. * */ statsPeriod?: string; /** * * This defines the start of the time series range as an explicit datetime, either in UTC * ISO8601 or epoch seconds. Use along with `end` instead of `statsPeriod`. * */ start?: string; /** * * This defines the inclusive end of the time series range as an explicit datetime, either in * UTC ISO8601 or epoch seconds. Use along with `start` instead of `statsPeriod`. * */ end?: string; /** * Specifies a field that should be marshaled in the output. Invalid fields will be rejected. */ field?: Array<'activity' | 'browser' | 'count_dead_clicks' | 'count_errors' | 'count_rage_clicks' | 'count_segments' | 'count_urls' | 'device' | 'dist' | 'duration' | 'environment' | 'error_ids' | 'finished_at' | 'id' | 'is_archived' | 'os' | 'platform' | 'project_id' | 'releases' | 'sdk' | 'started_at' | 'tags' | 'trace_ids' | 'segment_names' | 'urls' | 'user' | 'clicks' | 'info_ids' | 'warning_ids' | 'count_warnings' | 'count_infos' | 'has_viewed'>; /** * A list of project IDs or slugs to filter by. */ project?: Array; /** * A list of project slugs to filter your results by. */ projectSlug?: Array; /** * The environment to filter by. */ environment?: string; /** * The field to sort the output by. */ sort?: string; /** * The field to sort the output by. */ sortBy?: string; /** * The field to sort the output by. */ orderBy?: string; /** * A structured query string to filter the output by. */ query?: string; /** * Limit the number of rows to return in the result. */ per_page?: number; /** * The cursor parameter is used to paginate results. See [here](https://docs.sentry.io/api/pagination/) for how to use this query parameter */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/replays/'; }; export type ListOrganizationReplaysErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type ListOrganizationReplaysResponses = { 200: { data: Array<{ id?: string; project_id?: string; trace_ids?: Array; error_ids?: Array; environment?: string | null; tags?: { [key: string]: Array; } | Array; user?: { id?: string | null; username?: string | null; email?: string | null; ip?: string | null; display_name?: string | null; geo?: { city?: string | null; country_code?: string | null; region?: string | null; subdivision?: string | null; }; }; sdk?: { name?: string | null; version?: string | null; }; os?: { name?: string | null; version?: string | null; }; browser?: { name?: string | null; version?: string | null; }; device?: { name?: string | null; brand?: string | null; model?: string | null; family?: string | null; }; ota_updates?: { channel?: string | null; runtime_version?: string | null; update_id?: string | null; }; is_archived?: boolean | null; urls?: Array | null; segment_names?: Array | null; clicks?: Array<{ [key: string]: unknown; }>; count_dead_clicks?: number | null; count_rage_clicks?: number | null; count_errors?: number | null; duration?: number | null; finished_at?: string | null; started_at?: string | null; activity?: number | null; count_urls?: number | null; replay_type?: string; count_segments?: number | null; platform?: string | null; releases?: Array; dist?: string | null; count_warnings?: number | null; count_infos?: number | null; has_viewed?: boolean; }>; }; }; export type ListOrganizationReplaysResponse = ListOrganizationReplaysResponses[keyof ListOrganizationReplaysResponses]; export type GetOrganizationReplayData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the replay you'd like to retrieve. It is a 32-character hexadecimal string. */ replay_id: string; }; query?: { /** * * This defines the range of the time series, relative to now. The range is given in a * `` format. For example `1d` for a one day range. Possible units are `m` for * minutes, `h` for hours, `d` for days and `w` for weeks. You must either provide a * `statsPeriod`, or a `start` and `end`. * */ statsPeriod?: string; /** * * This defines the start of the time series range as an explicit datetime, either in UTC * ISO8601 or epoch seconds. Use along with `end` instead of `statsPeriod`. * */ start?: string; /** * * This defines the inclusive end of the time series range as an explicit datetime, either in * UTC ISO8601 or epoch seconds. Use along with `start` instead of `statsPeriod`. * */ end?: string; /** * Specifies a field that should be marshaled in the output. Invalid fields will be rejected. */ field?: Array<'activity' | 'browser' | 'count_dead_clicks' | 'count_errors' | 'count_rage_clicks' | 'count_segments' | 'count_urls' | 'device' | 'dist' | 'duration' | 'environment' | 'error_ids' | 'finished_at' | 'id' | 'is_archived' | 'os' | 'platform' | 'project_id' | 'releases' | 'sdk' | 'started_at' | 'tags' | 'trace_ids' | 'segment_names' | 'urls' | 'user' | 'clicks' | 'info_ids' | 'warning_ids' | 'count_warnings' | 'count_infos' | 'has_viewed'>; /** * A list of project IDs or slugs to filter by. */ project?: Array; /** * A list of project slugs to filter your results by. */ projectSlug?: Array; /** * The environment to filter by. */ environment?: string; /** * The field to sort the output by. */ sort?: string; /** * The field to sort the output by. */ sortBy?: string; /** * The field to sort the output by. */ orderBy?: string; /** * A structured query string to filter the output by. */ query?: string; /** * Limit the number of rows to return in the result. */ per_page?: number; /** * The cursor parameter is used to paginate results. See [here](https://docs.sentry.io/api/pagination/) for how to use this query parameter */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/replays/{replay_id}/'; }; export type GetOrganizationReplayErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationReplayResponses = { 200: { data: { id?: string; project_id?: string; trace_ids?: Array; error_ids?: Array; environment?: string | null; tags?: { [key: string]: Array; } | Array; user?: { id?: string | null; username?: string | null; email?: string | null; ip?: string | null; display_name?: string | null; geo?: { city?: string | null; country_code?: string | null; region?: string | null; subdivision?: string | null; }; }; sdk?: { name?: string | null; version?: string | null; }; os?: { name?: string | null; version?: string | null; }; browser?: { name?: string | null; version?: string | null; }; device?: { name?: string | null; brand?: string | null; model?: string | null; family?: string | null; }; ota_updates?: { channel?: string | null; runtime_version?: string | null; update_id?: string | null; }; is_archived?: boolean | null; urls?: Array | null; segment_names?: Array | null; clicks?: Array<{ [key: string]: unknown; }>; count_dead_clicks?: number | null; count_rage_clicks?: number | null; count_errors?: number | null; duration?: number | null; finished_at?: string | null; started_at?: string | null; activity?: number | null; count_urls?: number | null; replay_type?: string; count_segments?: number | null; platform?: string | null; releases?: Array; dist?: string | null; count_warnings?: number | null; count_infos?: number | null; has_viewed?: boolean; }; }; }; export type GetOrganizationReplayResponse = GetOrganizationReplayResponses[keyof GetOrganizationReplayResponses]; export type ListOrganizationReposData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * Filter repositories by name. */ query?: string; /** * Filter repositories by status. Defaults to `active`. */ status?: 'active' | 'deleted'; /** * Filter repositories by integration ID. */ integration_id?: string; /** * Optional repository fields to expand, such as `settings`. */ expand?: Array; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/repos/'; }; export type ListOrganizationReposErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationReposResponses = { 200: Array<{ url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }>; }; export type ListOrganizationReposResponse = ListOrganizationReposResponses[keyof ListOrganizationReposResponses]; export type ListOrganizationRepoCommitsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The repository ID. */ repo_id: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/repos/{repo_id}/commits/'; }; export type ListOrganizationRepoCommitsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationRepoCommitsResponses = { 200: Array<{ id: string; message: string | null; dateCreated: string; pullRequest: { id: string; title: string | null; message: string | null; dateCreated: string; mergedAt: string | null; status: 'merged' | 'open' | 'closed' | 'draft' | 'unknown' | null; repository: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }; externalUrl: string; } | null; suspectCommitType: string; repository?: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; } | { [key: string]: unknown; }; }>; }; export type ListOrganizationRepoCommitsResponse = ListOrganizationRepoCommitsResponses[keyof ListOrganizationRepoCommitsResponses]; export type ListOrganizationScimV2GroupsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * SCIM 1-offset based index for pagination. */ startIndex?: number; /** * The maximum number of results the query should return, maximum of 100. */ count?: number; /** * A SCIM filter expression. The only operator currently supported is `eq`. */ filter?: string; /** * Fields that should be left off of return values. Right now the only supported field for this query is members. */ excludedAttributes?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Groups'; }; export type ListOrganizationScimV2GroupsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationScimV2GroupsResponses = { 200: { schemas: Array; totalResults: number; startIndex: number; itemsPerPage: number; Resources: Array<{ schemas: Array; id: string; displayName: string; meta: { resourceType: string; }; members?: Array<{ value: string; display: string; }>; }>; }; }; export type ListOrganizationScimV2GroupsResponse = ListOrganizationScimV2GroupsResponses[keyof ListOrganizationScimV2GroupsResponses]; export type ProvisionOrganizationScimV2GroupData = { body: { /** * The slug of the team that is shown in the UI. */ displayName: string; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Groups'; }; export type ProvisionOrganizationScimV2GroupErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ProvisionOrganizationScimV2GroupResponses = { 201: { schemas: Array; id: string; displayName: string; meta: { resourceType: string; }; members?: Array<{ value: string; display: string; }>; }; }; export type ProvisionOrganizationScimV2GroupResponse = ProvisionOrganizationScimV2GroupResponses[keyof ProvisionOrganizationScimV2GroupResponses]; export type DeleteOrganizationScimV2GroupData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Groups/{team_id_or_slug}'; }; export type DeleteOrganizationScimV2GroupErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationScimV2GroupResponses = { /** * Success */ 204: void; }; export type DeleteOrganizationScimV2GroupResponse = DeleteOrganizationScimV2GroupResponses[keyof DeleteOrganizationScimV2GroupResponses]; export type GetOrganizationScimV2GroupData = { body?: never; path: { /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Groups/{team_id_or_slug}'; }; export type GetOrganizationScimV2GroupErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationScimV2GroupResponses = { 200: { schemas: Array; id: string; displayName: string; meta: { resourceType: string; }; members?: Array<{ value: string; display: string; }>; }; }; export type GetOrganizationScimV2GroupResponse = GetOrganizationScimV2GroupResponses[keyof GetOrganizationScimV2GroupResponses]; export type UpdateOrganizationScimV2GroupData = { body: { /** * The list of operations to perform. Valid operations are: * * Renaming a team: * ```json * { * "Operations": [{ * "op": "replace", * "value": { * "id": 23, * "displayName": "newName" * } * }] * } * ``` * * Adding a member to a team: * ```json * { * "Operations": [{ * "op": "add", * "path": "members", * "value": [ * { * "value": 23, * "display": "testexample@example.com" * } * ] * }] * } * ``` * * Removing a member from a team: * ```json * { * "Operations": [{ * "op": "remove", * "path": "members[value eq "23"]" * }] * } * ``` * * Replacing an entire member set of a team: * ```json * { * "Operations": [{ * "op": "replace", * "path": "members", * "value": [ * { * "value": 23, * "display": "testexample2@sentry.io" * }, * { * "value": 24, * "display": "testexample3@sentry.io" * } * ] * }] * } * ``` * */ Operations: Array<{ op: string; value?: { [key: string]: unknown; }; path?: string; }>; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Groups/{team_id_or_slug}'; }; export type UpdateOrganizationScimV2GroupErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationScimV2GroupResponses = { /** * Success */ 204: void; }; export type UpdateOrganizationScimV2GroupResponse = UpdateOrganizationScimV2GroupResponses[keyof UpdateOrganizationScimV2GroupResponses]; export type ListOrganizationScimV2UsersData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * SCIM 1-offset based index for pagination. */ startIndex?: number; /** * The maximum number of results the query should return, maximum of 100. */ count?: number; /** * A SCIM filter expression. The only operator currently supported is `eq`. */ filter?: string; /** * Fields that should be left off of return values. Right now the only supported field for this query is members. */ excludedAttributes?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Users'; }; export type ListOrganizationScimV2UsersErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationScimV2UsersResponses = { 200: { schemas: Array; totalResults: number; startIndex: number; itemsPerPage: number; Resources: Array<{ active?: boolean; schemas: Array; id: string; userName: string; name: { givenName: string; familyName: string; }; emails: Array<{ primary: boolean; value: string; type: string; }>; meta: { resourceType: string; }; sentryOrgRole: string; }>; }; }; export type ListOrganizationScimV2UsersResponse = ListOrganizationScimV2UsersResponses[keyof ListOrganizationScimV2UsersResponses]; export type ProvisionOrganizationScimV2UserData = { body: { /** * The SAML field used for email. */ userName: string; /** * The organization role of the member. If unspecified, this will be * set to the organization's default role. The options are: * * * `billing` - Can manage payment and compliance details. * * `member` - Can view and act on events, as well as view most other data within the organization. * * `manager` - Has full management access to all teams and projects. Can also manage * the organization's membership. * * `admin` - Can edit global integrations, manage projects, and add/remove teams. * They automatically assume the Team Admin role for teams they join. * Note: This role can no longer be assigned in Business and Enterprise plans. Use `TeamRoles` instead. * */ sentryOrgRole?: 'billing' | 'member' | 'manager' | 'admin'; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Users'; }; export type ProvisionOrganizationScimV2UserErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ProvisionOrganizationScimV2UserResponses = { /** * Conforming to the SCIM RFC, this represents a Sentry Org Member * as a SCIM user object. */ 201: { active?: boolean; schemas: Array; id: string; userName: string; name: { givenName: string; familyName: string; }; emails: Array<{ primary: boolean; value: string; type: string; }>; meta: { resourceType: string; }; sentryOrgRole: string; }; }; export type ProvisionOrganizationScimV2UserResponse = ProvisionOrganizationScimV2UserResponses[keyof ProvisionOrganizationScimV2UserResponses]; export type DeleteOrganizationScimV2UserData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the member to delete. */ member_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Users/{member_id}'; }; export type DeleteOrganizationScimV2UserErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationScimV2UserResponses = { /** * Success */ 204: void; }; export type DeleteOrganizationScimV2UserResponse = DeleteOrganizationScimV2UserResponses[keyof DeleteOrganizationScimV2UserResponses]; export type GetOrganizationScimV2UserData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the member to query. */ member_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Users/{member_id}'; }; export type GetOrganizationScimV2UserErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationScimV2UserResponses = { /** * Conforming to the SCIM RFC, this represents a Sentry Org Member * as a SCIM user object. */ 200: { active?: boolean; schemas: Array; id: string; userName: string; name: { givenName: string; familyName: string; }; emails: Array<{ primary: boolean; value: string; type: string; }>; meta: { resourceType: string; }; sentryOrgRole: string; }; }; export type GetOrganizationScimV2UserResponse = GetOrganizationScimV2UserResponses[keyof GetOrganizationScimV2UserResponses]; export type UpdateOrganizationScimV2UserData = { body: { /** * A list of operations to perform. Currently, the only valid operation is setting * a member's `active` attribute to false, after which the member will be permanently deleted. * ```json * { * "Operations": [{ * "op": "replace", * "path": "active", * "value": False * }] * } * ``` * */ Operations: Array<{ op: string; value: unknown; path?: string; }>; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the member to update. */ member_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/scim/v2/Users/{member_id}'; }; export type UpdateOrganizationScimV2UserErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationScimV2UserResponses = { /** * Success */ 204: void; }; export type UpdateOrganizationScimV2UserResponse = UpdateOrganizationScimV2UserResponses[keyof UpdateOrganizationScimV2UserResponses]; export type ListOrganizationSentryAppsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/sentry-apps/'; }; export type ListOrganizationSentryAppsResponses = { 200: Array<{ allowedOrigins: Array; avatars: Array<{ avatarType: string; avatarUuid: string; avatarUrl: string; color: boolean; photoType: string; }>; events: Array; webhookEvents: Array; featureData: Array; isAlertable: boolean; metadata: string; name: string; schema: string; scopes: Array; slug: string; status: string; uuid: string; verifyInstall: boolean; webhookHeaders: Array; isDisabled?: boolean; author?: string | null; overview?: string | null; popularity?: number | null; redirectUrl?: string | null; webhookUrl?: string | null; clientSecret?: string | null; datePublished?: string; clientId?: string; owner?: { id: number; slug: string; }; }>; }; export type ListOrganizationSentryAppsResponse = ListOrganizationSentryAppsResponses[keyof ListOrganizationSentryAppsResponses]; export type GetOrganizationSessionsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * The list of fields to query. * * The available fields are * - `sum(session)` * - `count_unique(user)` * - `avg`, `p50`, `p75`, `p90`, `p95`, `p99`, `max` applied to `session.duration`. For example, `p99(session.duration)`. Session duration is [no longer being recorded](https://github.com/getsentry/sentry/discussions/42716) as of on Jan 12, 2023. Returned data may be incomplete. * - `crash_rate`, `crash_free_rate` applied to `user` or `session`. For example, `crash_free_rate(user)` * */ field: Array; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * The name of environments to filter by. */ environment?: Array; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The number of groups to return per request. */ per_page?: number; /** * Resolution of the time series, given in the same format as `statsPeriod`. * * The default and * the minimum interval is `1h`. */ interval?: string; /** * The list of properties to group by. * * The available groupBy conditions are `project`, * `release`, `environment` and `session.status`. */ groupBy?: Array; /** * An optional field to order by, which must be one of the fields provided in `field`. Use `-` * for descending order, for example, `-sum(session)` */ orderBy?: string; /** * Specify `0` to exclude totals from the response. The default is `1` */ includeTotals?: number; /** * Specify `0` to exclude series from the response. The default is `1` */ includeSeries?: number; /** * Filters results by using [query syntax](/product/sentry-basics/search/). * * Example: `query=(transaction:foo AND release:abc) OR (transaction:[bar,baz] AND release:def)` * */ query?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/sessions/'; }; export type GetOrganizationSessionsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; }; export type GetOrganizationSessionsResponses = { 200: { start: string; end: string; intervals: Array; groups: Array<{ by: { project?: number; release?: string; environment?: string; 'session.status'?: string; }; series: { [key: string]: Array; }; totals: { [key: string]: number | null; }; }>; query: string; }; }; export type GetOrganizationSessionsResponse = GetOrganizationSessionsResponses[keyof GetOrganizationSessionsResponses]; export type ResolveOrganizationShortIdData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The short ID of the issue to resolve. */ issue_id: string; }; query?: { /** * Fields to remove from the response to improve query performance. */ collapse?: Array<'base' | 'filtered' | 'lifetime' | 'stats' | 'unhandled'>; }; url: '/api/0/organizations/{organization_id_or_slug}/shortids/{issue_id}/'; }; export type ResolveOrganizationShortIdErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ResolveOrganizationShortIdResponses = { 200: { organizationSlug: string; projectSlug: string; groupId: string; group: { isUnhandled?: boolean; count?: string; userCount?: number; firstSeen?: string | null; lastSeen?: string | null; derivedData?: { blocker: string; progress: string; status: string; viewCount: number; hasOpenFixPr: boolean; isAssigned: boolean; hasRootCause: boolean; lastCompletedAutofixStep: string; lastProgressedAt: string | null; }; id: string; shareId: string | null; shortId: string; title: string; culprit: string | null; permalink: string; logger: string | null; level: 'sample' | 'debug' | 'info' | 'warning' | 'error' | 'fatal' | 'unknown'; status: 'resolved' | 'ignored' | 'pending_deletion' | 'pending_merge' | 'reprocessing' | 'unresolved'; statusDetails: { ignoreCount?: number; ignoreUntil?: string; ignoreUserCount?: number; ignoreUserWindow?: number; ignoreWindow?: number; actor?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; inNextRelease?: boolean; inRelease?: string; inCommit?: string; pendingEvents?: number; info?: { dateCreated: string; syncCount: number; totalEvents: number; } | null; }; substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; isPublic: boolean; platform: string | null; priority: 'low' | 'medium' | 'high' | null; priorityLockedAt: string | null; seerFixabilityScore: number | null; seerAutofixLastTriggered: string | null; seerExplorerAutofixLastTriggered: string | null; project: { id: string; name: string; slug: string; platform: string | null; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; issueType: string; issueCategory: string; metadata: { [key: string]: unknown; }; numComments: number; assignedTo: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; isBookmarked: boolean; isSubscribed: boolean; subscriptionDetails: { disabled?: boolean; reason?: string; } | null; hasSeen: boolean; annotations: Array<{ displayName: string; url: string; }>; }; shortId: string; }; }; export type ResolveOrganizationShortIdResponse = ResolveOrganizationShortIdResponses[keyof ResolveOrganizationShortIdResponses]; export type GetOrganizationStatsSummaryData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * the `sum(quantity)` field is bytes for attachments, and all others the 'event' count for those types of events. * * `sum(times_seen)` sums the number of times an event has been seen. For 'normal' event types, this will be equal to `sum(quantity)` for now. For sessions, quantity will sum the total number of events seen in a session, while `times_seen` will be the unique number of sessions. and for attachments, `times_seen` will be the total number of attachments, while quantity will be the total sum of attachment bytes. * * * `sum(quantity)` * * `sum(times_seen)` */ field: 'sum(quantity)' | 'sum(times_seen)'; /** * This defines the range of the time series, relative to now. The range is given in a `` format. For example `1d` for a one day range. Possible units are `m` for minutes, `h` for hours, `d` for days and `w` for weeks. You must either provide a `statsPeriod`, or a `start` and `end`. */ statsPeriod?: string; /** * This is the resolution of the time series, given in the same format as `statsPeriod`. The default resolution is `1h` and the minimum resolution is currently restricted to `1h` as well. Intervals larger than `1d` are not supported, and the interval has to cleanly divide one day. */ interval?: string; /** * This defines the start of the time series range as an explicit datetime, either in UTC ISO8601 or epoch seconds. Use along with `end` instead of `statsPeriod`. */ start?: string; /** * This defines the inclusive end of the time series range as an explicit datetime, either in UTC ISO8601 or epoch seconds. Use along with `start` instead of `statsPeriod`. */ end?: string; /** * The ID of the projects to filter by. */ project?: Array; /** * If filtering by attachments, you cannot filter by any other category due to quantity values becoming nonsensical (combining bytes and event counts). * * If filtering by `error`, it will automatically add `default` and `security` as we currently roll those two categories into `error` for displaying. * * * `error` * * `transaction` * * `attachment` * * `replays` * * `profiles` */ category?: 'error' | 'transaction' | 'attachment' | 'replays' | 'profiles'; /** * See https://docs.sentry.io/product/stats/ for more information on outcome statuses. * * * `accepted` * * `filtered` * * `rate_limited` * * `invalid` * * `abuse` * * `client_discard` * * `cardinality_limited` */ outcome?: 'accepted' | 'filtered' | 'rate_limited' | 'invalid' | 'abuse' | 'client_discard' | 'cardinality_limited'; /** * The reason field will contain why an event was filtered/dropped. */ reason?: string; /** * Download the API response in as a csv file */ download?: boolean; }; url: '/api/0/organizations/{organization_id_or_slug}/stats-summary/'; }; export type GetOrganizationStatsSummaryErrors = { /** * Unauthorized */ 401: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationStatsSummaryResponses = { 200: { start: string; end: string; projects: Array<{ id: string; slug: string; stats: Array<{ [key: string]: unknown; }>; }>; }; }; export type GetOrganizationStatsSummaryResponse = GetOrganizationStatsSummaryResponses[keyof GetOrganizationStatsSummaryResponses]; export type ListOrganizationStatsV2Data = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * can pass multiple groupBy parameters to group by multiple, e.g. `groupBy=project&groupBy=outcome` to group by multiple dimensions. Note that grouping by project can cause missing rows if the number of projects / interval is large. If you have a large number of projects, we recommend filtering and querying by them individually.Also note that grouping by projects does not currently support timeseries interval responses and will instead be a sum of the projectover the entire period specified. */ groupBy: Array<'outcome' | 'category' | 'reason' | 'project'>; /** * the `sum(quantity)` field is bytes for attachments, and all others the 'event' count for those types of events. * * `sum(times_seen)` sums the number of times an event has been seen. For 'normal' event types, this will be equal to `sum(quantity)` for now. For sessions, quantity will sum the total number of events seen in a session, while `times_seen` will be the unique number of sessions. and for attachments, `times_seen` will be the total number of attachments, while quantity will be the total sum of attachment bytes. * * * `sum(quantity)` * * `sum(times_seen)` */ field: 'sum(quantity)' | 'sum(times_seen)'; /** * This defines the range of the time series, relative to now. The range is given in a `` format. For example `1d` for a one day range. Possible units are `m` for minutes, `h` for hours, `d` for days and `w` for weeks. You must either provide a `statsPeriod`, or a `start` and `end`. */ statsPeriod?: string; /** * This is the resolution of the time series, given in the same format as `statsPeriod`. The default resolution is `1h` and the minimum resolution is currently restricted to `1h` as well. Intervals larger than `1d` are not supported, and the interval has to cleanly divide one day. */ interval?: string; /** * This defines the start of the time series range as an explicit datetime, either in UTC ISO8601 or epoch seconds. Use along with `end` instead of `statsPeriod`. */ start?: string; /** * This defines the inclusive end of the time series range as an explicit datetime, either in UTC ISO8601 or epoch seconds. Use along with `start` instead of `statsPeriod`. */ end?: string; /** * The ID of the projects to filter by. * * Use `-1` to include all accessible projects. */ project?: Array; /** * Filter by data category. Each category represents a different type of data: * * - `error`: Error events (includes `default` and `security` categories) * - `transaction`: Transaction events * - `attachment`: File attachments (note: cannot be combined with other categories since quantity represents bytes) * - `replay`: Session replay events * - `profile`: Performance profiles * - `profile_duration`: Profile duration data (note: cannot be combined with other categories since quantity represents milliseconds) * - `profile_duration_ui`: Profile duration (UI) data (note: cannot be combined with other categories since quantity represents milliseconds) * - `profile_chunk`: Profile chunk data * - `profile_chunk_ui`: Profile chunk (UI) data * - `monitor`: Cron monitor events * * * `error` * * `transaction` * * `attachment` * * `replay` * * `profile` * * `profile_duration` * * `profile_duration_ui` * * `profile_chunk` * * `profile_chunk_ui` * * `monitor` */ category?: 'error' | 'transaction' | 'attachment' | 'replay' | 'profile' | 'profile_duration' | 'profile_duration_ui' | 'profile_chunk' | 'profile_chunk_ui' | 'monitor'; /** * See https://docs.sentry.io/product/stats/ for more information on outcome statuses. * * * `accepted` * * `filtered` * * `rate_limited` * * `invalid` * * `abuse` * * `client_discard` * * `cardinality_limited` */ outcome?: 'accepted' | 'filtered' | 'rate_limited' | 'invalid' | 'abuse' | 'client_discard' | 'cardinality_limited'; /** * The reason field will contain why an event was filtered/dropped. */ reason?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/stats_v2/'; }; export type ListOrganizationStatsV2Errors = { /** * Unauthorized */ 401: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationStatsV2Responses = { 200: { start: string; end: string; intervals: Array; groups: Array<{ by: { [key: string]: unknown; }; totals: { [key: string]: unknown; }; series: { [key: string]: unknown; }; }>; }; }; export type ListOrganizationStatsV2Response = ListOrganizationStatsV2Responses[keyof ListOrganizationStatsV2Responses]; export type ListOrganizationTagsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The name of environments to filter by. */ environment?: Array; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * The dataset to query. Defaults to `discover`. */ dataset?: 'discover' | 'events' | 'replays' | 'search_issues'; /** * Set to `"1"` to enable caching for the tag key query. */ use_cache?: '0' | '1'; /** * Set to `"1"` to query feature flags instead of tags. */ useFlagsBackend?: '0' | '1'; }; url: '/api/0/organizations/{organization_id_or_slug}/tags/'; }; export type ListOrganizationTagsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; }; export type ListOrganizationTagsResponses = { 200: Array<{ uniqueValues?: number | null; totalValues?: number | null; topValues?: Array<{ query?: string | null; key: string; name: string; value: string | null; count: number | null; lastSeen: string | null; firstSeen: string | null; }> | null; key: string; name: string; }>; }; export type ListOrganizationTagsResponse2 = ListOrganizationTagsResponses[keyof ListOrganizationTagsResponses]; export type ListOrganizationTeamsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * * Specify `"0"` to return team details that do not include projects. * */ detailed?: string; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * Filter teams by name or slug. */ query?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/teams/'; }; export type ListOrganizationTeamsErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationTeamsResponses = { 200: Array<{ id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; externalTeams?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; organization?: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; projects?: Array<{ stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }>; }>; }; export type ListOrganizationTeamsResponse = ListOrganizationTeamsResponses[keyof ListOrganizationTeamsResponses]; export type CreateOrganizationTeamData = { body?: { /** * Uniquely identifies a team and is used for the interface. If not * provided, it is automatically generated from the name. */ slug?: string | null; /** * **`[DEPRECATED]`** The name for the team. If not provided, it is * automatically generated from the slug * * @deprecated */ name?: string | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/teams/'; }; export type CreateOrganizationTeamErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * A team with this slug already exists. */ 404: unknown; }; export type CreateOrganizationTeamResponses = { 201: { id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; externalTeams?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; organization?: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; projects?: Array<{ stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }>; }; }; export type CreateOrganizationTeamResponse = CreateOrganizationTeamResponses[keyof CreateOrganizationTeamResponses]; export type ListOrganizationTraceItemAttributesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * The trace item dataset to list attributes for. One of `itemType` or `dataset` is required. */ dataset?: 'logs' | 'preprod' | 'processing_errors' | 'spans' | 'tracemetrics'; /** * Deprecated alias of `dataset`. Use `dataset` instead. * * @deprecated */ itemType?: 'logs' | 'preprod' | 'processing_errors' | 'spans' | 'tracemetrics'; /** * Filter to attributes of one or more types. Defaults to all types. */ attributeType?: Array<'array' | 'boolean' | 'number' | 'string'>; /** * Restrict results to attribute names containing this substring (case-sensitive). */ substringMatch?: string; /** * Sentry [search syntax](https://docs.sentry.io/concepts/search/) to filter trace items before computing attributes. */ query?: string; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/trace-items/attributes/'; }; export type ListOrganizationTraceItemAttributesErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationTraceItemAttributesResponses = { 200: Array<{ key: string; name: string; secondaryAliases?: Array; attributeSource: { source_type: 'sentry' | 'user'; is_transformed_alias?: boolean; }; attributeType: 'string' | 'number' | 'boolean' | 'array'; }>; }; export type ListOrganizationTraceItemAttributesResponse = ListOrganizationTraceItemAttributesResponses[keyof ListOrganizationTraceItemAttributesResponses]; export type ListOrganizationTraceItemsStatsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query: { /** * The statistics to compute over the matching trace items. */ statsType: Array<'attributeDistributions'>; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; /** * The name of environments to filter by. */ environment?: Array; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * The trace item dataset to compute statistics for. Defaults to `spans`. */ itemType?: 'occurrences' | 'spans'; /** * Sentry [search syntax](https://docs.sentry.io/concepts/search/) to filter trace items before computing statistics. */ query?: string; /** * Restrict results to attribute names containing this substring (case-sensitive). */ substringMatch?: string; /** * Maximum number of trace items to sample when computing statistics. Defaults to `1000`, which is also the maximum. */ traceItemsLimit?: number; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/trace-items/stats/'; }; export type ListOrganizationTraceItemsStatsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationTraceItemsStatsResponses = { 200: { data: Array<{ attributeDistributions: { data: { [key: string]: Array<{ label: string; value: number; }>; }; }; }>; }; }; export type ListOrganizationTraceItemsStatsResponse = ListOrganizationTraceItemsStatsResponses[keyof ListOrganizationTraceItemsStatsResponses]; export type GetOrganizationTraceMetaData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the trace, a 32-character hexadecimal string. */ trace_id: string; }; query?: { /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * Set to `1` to include uptime check counts in the response. Defaults to `0` (disabled). */ include_uptime?: '0' | '1'; }; url: '/api/0/organizations/{organization_id_or_slug}/trace-meta/{trace_id}/'; }; export type GetOrganizationTraceMetaErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationTraceMetaResponses = { 200: { uptimeCount?: number; errorsCount: number; logsCount: number; metricsCount: number; performanceIssuesCount: number; spansCount: number; transactionChildCountMap: Array<{ [key: string]: unknown; }>; spansCountMap: { [key: string]: number; }; }; }; export type GetOrganizationTraceMetaResponse = GetOrganizationTraceMetaResponses[keyof GetOrganizationTraceMetaResponses]; export type GetOrganizationTraceData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the trace, a 32-character hexadecimal string. */ trace_id: string; }; query?: { /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * Internal referrer identifier used for query tracing. Most clients can omit this. */ referrer?: string; /** * A 32-character hexadecimal event ID to bias the trace results toward including. */ errorId?: string; /** * Additional span attributes to include on each event. Repeat to request multiple. */ additional_attributes?: Array; /** * Set to `1` to include uptime check results in the trace. Defaults to `0`. */ include_uptime?: '0' | '1'; }; url: '/api/0/organizations/{organization_id_or_slug}/trace/{trace_id}/'; }; export type GetOrganizationTraceErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationTraceResponses = { 200: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'span'; children: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; }>; errors: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; }>; occurrences: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; }>; duration: number; end_timestamp: number; measurements: { [key: string]: number; }; browser_web_vital: { [key: string]: number; }; mobile_app_vital: { [key: string]: number; }; op: string; name: string; parent_span_id: string | null; profile_id: string; profiler_id: string; sdk_name: string; start_timestamp: number; is_transaction: boolean; transaction_id: string; additional_attributes?: { [key: string]: unknown; }; } | { description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; } | { description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'uptime_check'; children: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; }>; errors: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; }>; occurrences: Array<{ description: string; event_id: string; project_id: number; project_slug: string; transaction: string; event_type: 'error' | 'occurrence'; issue_id: number; level: string; start_timestamp: number; end_timestamp?: number; culprit: string | null; short_id: string | null; issue_type: number; }>; transaction_id: string; op: string; start_timestamp: number; end_timestamp: number; duration: number; name: string; region_name: string; additional_attributes: { [key: string]: unknown; }; }>; }; export type GetOrganizationTraceResponse = GetOrganizationTraceResponses[keyof GetOrganizationTraceResponses]; export type ListOrganizationUserTeamsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/user-teams/'; }; export type ListOrganizationUserTeamsErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type ListOrganizationUserTeamsResponses = { 200: Array<{ id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; externalTeams?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; organization?: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; projects?: Array<{ stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }>; }>; }; export type ListOrganizationUserTeamsResponse = ListOrganizationUserTeamsResponses[keyof ListOrganizationUserTeamsResponses]; export type DeleteOrganizationWorkflowsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * An optional search query for filtering alerts. */ query?: string; /** * The ID of the alert you'd like to query. */ id?: Array; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/workflows/'; }; export type DeleteOrganizationWorkflowsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationWorkflowsResponses = { /** * Success */ 200: unknown; /** * No Content */ 204: void; }; export type DeleteOrganizationWorkflowsResponse = DeleteOrganizationWorkflowsResponses[keyof DeleteOrganizationWorkflowsResponses]; export type ListOrganizationWorkflowsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * The field to sort results by. If not specified, the results are sorted by id. * * Available fields are: * - `name` * - `id` * - `dateCreated` * - `dateUpdated` * - `connectedDetectors` * - `actions` * - `priorityDetector` * * Prefix with `-` to sort in descending order. * */ sortBy?: string; /** * An optional search query for filtering alerts. */ query?: string; /** * The ID of the alert you'd like to query. */ id?: Array; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/workflows/'; }; export type ListOrganizationWorkflowsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationWorkflowsResponses = { 200: Array<{ id: string; name: string; organizationId: string; createdBy: string | null; dateCreated: string; dateUpdated: string; triggers: { id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; } | null; actionFilters: Array<{ id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; }> | null; environment: string | null; config: { [key: string]: unknown; }; detectorIds: Array | null; enabled: boolean; lastTriggered: string | null; owner: string | null; }>; }; export type ListOrganizationWorkflowsResponse = ListOrganizationWorkflowsResponses[keyof ListOrganizationWorkflowsResponses]; export type CreateOrganizationWorkflowData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The name of the alert */ name: string; /** * The ID of the existing alert */ id?: string; /** * Whether the alert is enabled or disabled */ enabled?: boolean; /** * The IDs of the monitors to connect this alert to. Use 'Fetch an Organization's Monitors' to find the IDs. */ detector_ids?: Array; /** * * Typically the frequency at which the alert will fire, in minutes. * * - `0`: 0 minutes * - `5`: 5 minutes * - `10`: 10 minutes * - `30`: 30 minutes * - `60`: 1 hour * - `180`: 3 hours * - `720`: 12 hours * - `1440`: 24 hours * * ```json * { * "frequency":3600 * } * ``` * */ config?: { [key: string]: unknown; }; /** * The name of the environment for the alert to evaluate in */ environment?: string | null; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ triggers?: { id?: number; /** * * `any` * * `any-short` * * `all` * * `none` */ logic_type: 'any' | 'any-short' | 'all' | 'none'; conditions?: Array; }; /** * The filters to run before the action will fire and the action(s) to fire. * * `logicType` can be one of `any-short`, `all`, or `none`. * * Below is a basic example. See below for all other options. * * ```json * "actionFilters": [ * { * "logicType": "any", * "conditions": [ * { * "type": "level", * "comparison": { * "level": 50, * "match": "eq" * }, * "conditionResult": true * } * ], * "actions": [ * { * "id": "123", * "type": "email", * "integrationId": null, * "data": {}, * "config": { * "targetType": "user", * "targetDisplay": null, * "targetIdentifier": "56789" * }, * "status": "active" * } * ] * } * ] * ``` * * ## Conditions * * **Issue Age** * - `time`: One of `minute`, `hour`, `day`, or `week`. * - `value`: A positive integer. * - `comparisonType`: One of `older` or `newer`. * ```json * { * "type": "age_comparison", * "comparison": { * "time": "minute", * "value": 10, * "comparisonType": "older" * }, * "conditionResult": true * } * * ``` * * **Issue Assignment** * - `targetType`: Who the issue is assigned to * - `Unassigned`: Unassigned * - `Member`: Assigned to a user * - `Team`: Assigned to a team * - `targetIdentifier`: The ID of the user or team from the `targetType`. Enter "" if `targetType` is `Unassigned`. * ```json * { * "type": "assigned_to", * "comparison": { * "targetType": "Member", * "targetIdentifier": 123456 * }, * "conditionResult": true * } * ``` * * **Issue Category** * - `value`: The issue category to filter to. * - `1`: Error issues * - `6`: Feedback issues * - `10`: Outage issues * - `11`: Metric issues * - `12`: DB Query issues * - `13`: HTTP Client issues * - `14`: Front end issues * - `15`: Mobile issues * ```json * { * "type": "issue_category", * "comparison": { * "value": 1 * }, * "conditionResult": true * } * ``` * * **Issue Frequency** * - `value`: A positive integer representing how many times the issue has to happen before the alert will fire. * ```json * { * "type": "issue_occurrences", * "comparison": { * "value": 10 * }, * "conditionResult": true * } * ``` * * **De-escalation** * ```json * { * "type": "issue_priority_deescalating", * "comparison": true, * "conditionResult": true * } * ``` * * **Issue Priority** * - `comparison`: The priority the issue must be for the alert to fire. * - `75`: High priority * - `50`: Medium priority * - `25`: Low priority * ```json * { * "type": "issue_priority_greater_or_equal", * "comparison": 75, * "conditionResult": true * } * ``` * * **Number of Users Affected** * - `value`: A positive integer representing the number of users that must be affected before the alert will fire. * - `filters`: A list of additional sub-filters to evaluate before the alert will fire. * - `interval`: The time period in which to evaluate the value. e.g. Number of users affected by an issue is more than `value` in `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * ```json * { * "type": "event_unique_user_frequency_count", * "comparison": { * "value": 100, * "filters": [{"key": "foo", "match": "eq", "value": "bar"}], * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Number of Events** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Number of events in an issue is more than `value` in `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * ```json * { * "type": "event_frequency_count", * "comparison": { * "value": 100, * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Percent of Events** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Number of events in an issue is `comparisonInterval` percent higher `value` compared to `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * - `comparisonInterval`: The time period to compare against. See `interval` for options. * ```json * { * "type": "event_frequency_percent", * "comparison": { * "value": 100, * "interval": "1h", * "comparisonInterval": "1w" * }, * "conditionResult": true * } * * ``` * * **Percentage of Sessions Affected Count** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Percentage of sessions affected by an issue is more than `value` in `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * ```json * { * "type": "percent_sessions_count", * "comparison": { * "value": 10, * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Percentage of Sessions Affected Percent** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Percentage of sessions affected by an issue is `comparisonInterval` percent higher `value` compared to `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * - `comparisonInterval`: The time period to compare against. See `interval` for options. * ```json * { * "type": "percent_sessions_percent", * "comparison": { * "value": 10, * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Event Attribute** * The event's `attribute` value `match` `value` * * - `attribute`: The event attribute to match on. Valid values are: `message`, `platform`, `environment`, `type`, `error.handled`, `error.unhandled`, `error.main_thread`, `exception.type`, `exception.value`, `user.id`, `user.email`, `user.username`, `user.ip_address`, `http.method`, `http.url`, `http.status_code`, `sdk.name`, `stacktrace.code`, `stacktrace.module`, `stacktrace.filename`, `stacktrace.abs_path`, `stacktrace.package`, `unreal.crash_type`, `app.in_foreground`. * - `match`: The comparison operator * - `co`: Contains * - `nc`: Does not contain * - `eq`: Equals * - `ne`: Does not equal * - `sw`: Starts with * - `ew`: Ends with * - `is`: Is set * - `ns`: Is not set * - `value`: A string. Not required when match is `is` or `ns`. * * ```json * { * "type": "event_attribute", * "comparison": { * "match": "co", * "value": "bar", * "attribute": "message" * }, * "conditionResult": true * } * ``` * * **Tagged Event** * The event's tags `key` match `value` * - `key`: The tag value * - `match`: The comparison operator * - `co`: Contains * - `nc`: Does not contain * - `eq`: Equals * - `ne`: Does not equal * - `sw`: Starts with * - `ew`: Ends with * - `is`: Is set * - `ns`: Is not set * - `value`: A string. Not required when match is `is` or `ns`. * * ```json * { * "type": "tagged_event", * "comparison": { * "key": "level", * "match": "eq", * "value": "error" * }, * "conditionResult": true * } * ``` * * **Latest Release** * The event is from the latest release * * ```json * { * "type": "latest_release", * "comparison": true, * "conditionResult": true * } * ``` * * **Release Age** * ```json * { * "type": "latest_adopted_release", * "comparison": { * "environment": "production", * "ageComparison": "older", * "releaseAgeType": "oldest" * }, * "conditionResult": true * } * ``` * * **Event Level** * The event's level is `match` `level` * - `match`: The comparison operator * - `eq`: Equal * - `gte`: Greater than or equal * - `lte`: Less than or equal * - `level`: The event level * - `50`: Fatal * - `40`: Error * - `30`: Warning * - `20`: Info * - `10`: Debug * - `0`: Sample * * ```json * { * "type": "level", * "comparison": { * "level": 50, * "match": "eq" * }, * "conditionResult": true * } * ``` * * ## Actions * A list of actions that take place when all required conditions and filters for the alert are met. See below for a list of possible actions. * * * **Notify on Preferred Channel** * - `data`: A dictionary with the fallthrough type option when choosing to notify Suggested Assignees. Leave empty if notifying a user or team. * - `fallthroughType` * - `ActiveMembers` * - `AllMembers` * - `NoOne` * - `config`: A dictionary with the configuration options for notification. * - `targetType`: The type of recipient to notify * - `user`: User * - `team`: Team * - `issue_owners`: Suggested Assignees * - `targetDisplay`: null * - `targetIdentifier`: The id of the user or team to notify. Leave null for Suggested Assignees. * * ```json * { * "type":"email", * "integrationId":null, * "data":{}, * "config":{ * "targetType":"user", * "targetDisplay":null, * "targetIdentifier":"232692" * }, * "status":"active" * }, * { * "type":"email", * "integrationId":null, * "data":{ * "fallthroughType":"ActiveMembers" * }, * "config":{ * "targetType":"issue_owners", * "targetDisplay":null, * "targetIdentifier":""} * , * "status":"active" * } * ``` * **Notify on Slack** * - `targetDisplay`: The name of the channel to notify in. * `integrationId`: The stringified ID of the integration. * * ```json * { * "type":"slack", * "config":{ * "targetType":"specific", * "targetIdentifier":"", * "targetDisplay":"notify-errors" * }, * "integrationId":"1", * "data":{}, * "status":"active" * } * ``` * * **Notify on PagerDuty** * - `targetDisplay`: The name of the service to create the ticket in. * - `integrationId`: The stringified ID of the integration. * - `data["priority"]`: The severity level for the notification. * * ```json * { * "type":"pagerduty", * "config":{ * "targetType":"specific", * "targetIdentifier":"123456", * "targetDisplay":"Error Service" * }, * "integrationId":"2345", * "data":{ * "priority":"default" * }, * "status":"active" * } * ``` * * **Notify on Discord** * - `targetDisplay`: The name of the service to create the ticket in. * - `integrationId`: The stringified ID of the integration. * - `data["tags"]`: Comma separated list of tags to add to the notification. * * ```json * { * "type":"discord", * "config":{ * "targetType":"specific", * "targetIdentifier":"12345", * "targetDisplay":"", * }, * "integrationId":"1234", * "data":{ * "tags":"transaction,environment" * }, * "status":"active" * } * ``` * * **Notify on MSTeams** * - `targetIdentifier` - The integration ID associated with the Microsoft Teams team. * - `targetDisplay` - The name of the channel to send the notification to. * - `integrationId`: The stringified ID of the integration. * ```json * { * "type":"msteams", * "config":{ * "targetType":"specific", * "targetIdentifier":"19:a4b3kghaghgkjah357y6847@thread.skype", * "targetDisplay":"notify-errors" * }, * "integrationId":"1", * "data":{}, * "status":"active" * } * ``` * * **Notify on OpsGenie** * - `targetDisplay`: The name of the Opsgenie team. * - `targetIdentifier`: The ID of the Opsgenie team to send the notification to. * - `integrationId`: The stringified ID of the integration. * - `data["priority"]`: The priority level for the notification. * * ```json * { * "type":"opsgenie", * "config":{ * "targetType":"specific", * "targetIdentifier":"123456-Error-Service", * "targetDisplay":"Error Service" * }, * "integrationId":"2345", * "data":{ * "priority":"P3" * }, * "status":"active" * } * ``` * * **Notify on Azure DevOps** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"vsts", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{...}, * "status":"active" * } * ``` * * **Create a Jira ticket** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"jira", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{...}, * "status":"active" * } * ``` * * **Create a Jira Server ticket** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"jira_server", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{...}, * "status":"active" * } * ``` * * **Create a GitHub issue** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"github", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{ * "additional_fields": { * "assignee": "", * "integration": "2345", * "labels": [], * "repo": "example-repo", * }, * "dynamic_form_fields": [ * { * "choices": [["YourOrg/example-repo", "example-repo"]], * "default": "YourOrg/example-repo", * "label": "GitHub Repository", * "name": "repo", * "required": true * "type": "select", * "updatesForm": true, * "url": "/extensions/github/search/example-repo/1234567/", * }, * ], * }, * "status":"active" * } * ``` * */ action_filters?: Array<{ [key: string]: unknown; }>; /** * * The ID user or team who owns the monitor or alert prefaced by the string 'user' or 'team'. * * **User** * ```json * "user:123456" * ``` * * **Team** * ```json * "team:456789" * ``` * */ owner?: string | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/workflows/'; }; export type CreateOrganizationWorkflowErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type CreateOrganizationWorkflowResponses = { 201: { id: string; name: string; organizationId: string; createdBy: string | null; dateCreated: string; dateUpdated: string; triggers: { id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; } | null; actionFilters: Array<{ id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; }> | null; environment: string | null; config: { [key: string]: unknown; }; detectorIds: Array | null; enabled: boolean; lastTriggered: string | null; owner: string | null; }; }; export type CreateOrganizationWorkflowResponse = CreateOrganizationWorkflowResponses[keyof CreateOrganizationWorkflowResponses]; export type UpdateOrganizationWorkflowsData = { body: { /** * Whether to enable or disable the alerts */ enabled: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; }; query?: { /** * An optional search query for filtering alerts. */ query?: string; /** * The ID of the alert you'd like to query. */ id?: Array; /** * The IDs or slugs of projects to filter by. Project slugs are unique within each organization. Omit this parameter to include all accessible projects. `-1` is also accepted to include all accessible projects. * For example, the following are valid parameters: * - `/?project=1234&project=56789` * - `/?project=android&project=javascript-react` * - `/?project=-1` * */ project?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/workflows/'; }; export type UpdateOrganizationWorkflowsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationWorkflowsResponses = { 200: Array<{ id: string; name: string; organizationId: string; createdBy: string | null; dateCreated: string; dateUpdated: string; triggers: { id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; } | null; actionFilters: Array<{ id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; }> | null; environment: string | null; config: { [key: string]: unknown; }; detectorIds: Array | null; enabled: boolean; lastTriggered: string | null; owner: string | null; }>; }; export type UpdateOrganizationWorkflowsResponse = UpdateOrganizationWorkflowsResponses[keyof UpdateOrganizationWorkflowsResponses]; export type DeleteOrganizationWorkflowData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the alert you'd like to query. */ workflow_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/workflows/{workflow_id}/'; }; export type DeleteOrganizationWorkflowErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationWorkflowResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationWorkflowResponse = DeleteOrganizationWorkflowResponses[keyof DeleteOrganizationWorkflowResponses]; export type GetOrganizationWorkflowData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the alert you'd like to query. */ workflow_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/workflows/{workflow_id}/'; }; export type GetOrganizationWorkflowErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationWorkflowResponses = { 200: { id: string; name: string; organizationId: string; createdBy: string | null; dateCreated: string; dateUpdated: string; triggers: { id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; } | null; actionFilters: Array<{ id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; }> | null; environment: string | null; config: { [key: string]: unknown; }; detectorIds: Array | null; enabled: boolean; lastTriggered: string | null; owner: string | null; }; }; export type GetOrganizationWorkflowResponse = GetOrganizationWorkflowResponses[keyof GetOrganizationWorkflowResponses]; export type UpdateOrganizationWorkflowData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The name of the alert */ name: string; /** * The ID of the existing alert */ id?: string; /** * Whether the alert is enabled or disabled */ enabled?: boolean; /** * The IDs of the monitors to connect this alert to. Use 'Fetch an Organization's Monitors' to find the IDs. */ detector_ids?: Array; /** * * Typically the frequency at which the alert will fire, in minutes. * * - `0`: 0 minutes * - `5`: 5 minutes * - `10`: 10 minutes * - `30`: 30 minutes * - `60`: 1 hour * - `180`: 3 hours * - `720`: 12 hours * - `1440`: 24 hours * * ```json * { * "frequency":3600 * } * ``` * */ config?: { [key: string]: unknown; }; /** * The name of the environment for the alert to evaluate in */ environment?: string | null; /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ triggers?: { id?: number; /** * * `any` * * `any-short` * * `all` * * `none` */ logic_type: 'any' | 'any-short' | 'all' | 'none'; conditions?: Array; }; /** * The filters to run before the action will fire and the action(s) to fire. * * `logicType` can be one of `any-short`, `all`, or `none`. * * Below is a basic example. See below for all other options. * * ```json * "actionFilters": [ * { * "logicType": "any", * "conditions": [ * { * "type": "level", * "comparison": { * "level": 50, * "match": "eq" * }, * "conditionResult": true * } * ], * "actions": [ * { * "id": "123", * "type": "email", * "integrationId": null, * "data": {}, * "config": { * "targetType": "user", * "targetDisplay": null, * "targetIdentifier": "56789" * }, * "status": "active" * } * ] * } * ] * ``` * * ## Conditions * * **Issue Age** * - `time`: One of `minute`, `hour`, `day`, or `week`. * - `value`: A positive integer. * - `comparisonType`: One of `older` or `newer`. * ```json * { * "type": "age_comparison", * "comparison": { * "time": "minute", * "value": 10, * "comparisonType": "older" * }, * "conditionResult": true * } * * ``` * * **Issue Assignment** * - `targetType`: Who the issue is assigned to * - `Unassigned`: Unassigned * - `Member`: Assigned to a user * - `Team`: Assigned to a team * - `targetIdentifier`: The ID of the user or team from the `targetType`. Enter "" if `targetType` is `Unassigned`. * ```json * { * "type": "assigned_to", * "comparison": { * "targetType": "Member", * "targetIdentifier": 123456 * }, * "conditionResult": true * } * ``` * * **Issue Category** * - `value`: The issue category to filter to. * - `1`: Error issues * - `6`: Feedback issues * - `10`: Outage issues * - `11`: Metric issues * - `12`: DB Query issues * - `13`: HTTP Client issues * - `14`: Front end issues * - `15`: Mobile issues * ```json * { * "type": "issue_category", * "comparison": { * "value": 1 * }, * "conditionResult": true * } * ``` * * **Issue Frequency** * - `value`: A positive integer representing how many times the issue has to happen before the alert will fire. * ```json * { * "type": "issue_occurrences", * "comparison": { * "value": 10 * }, * "conditionResult": true * } * ``` * * **De-escalation** * ```json * { * "type": "issue_priority_deescalating", * "comparison": true, * "conditionResult": true * } * ``` * * **Issue Priority** * - `comparison`: The priority the issue must be for the alert to fire. * - `75`: High priority * - `50`: Medium priority * - `25`: Low priority * ```json * { * "type": "issue_priority_greater_or_equal", * "comparison": 75, * "conditionResult": true * } * ``` * * **Number of Users Affected** * - `value`: A positive integer representing the number of users that must be affected before the alert will fire. * - `filters`: A list of additional sub-filters to evaluate before the alert will fire. * - `interval`: The time period in which to evaluate the value. e.g. Number of users affected by an issue is more than `value` in `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * ```json * { * "type": "event_unique_user_frequency_count", * "comparison": { * "value": 100, * "filters": [{"key": "foo", "match": "eq", "value": "bar"}], * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Number of Events** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Number of events in an issue is more than `value` in `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * ```json * { * "type": "event_frequency_count", * "comparison": { * "value": 100, * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Percent of Events** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Number of events in an issue is `comparisonInterval` percent higher `value` compared to `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * - `comparisonInterval`: The time period to compare against. See `interval` for options. * ```json * { * "type": "event_frequency_percent", * "comparison": { * "value": 100, * "interval": "1h", * "comparisonInterval": "1w" * }, * "conditionResult": true * } * * ``` * * **Percentage of Sessions Affected Count** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Percentage of sessions affected by an issue is more than `value` in `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * ```json * { * "type": "percent_sessions_count", * "comparison": { * "value": 10, * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Percentage of Sessions Affected Percent** * - `value`: A positive integer representing the number of events in an issue that must come in before the alert will fire * - `interval`: The time period in which to evaluate the value. e.g. Percentage of sessions affected by an issue is `comparisonInterval` percent higher `value` compared to `interval`. * - `1min`: 1 minute * - `5min`: 5 minutes * - `15min`: 15 minutes * - `1hr`: 1 hour * - `1d`: 1 day * - `1w`: 1 week * - `30d`: 30 days * - `comparisonInterval`: The time period to compare against. See `interval` for options. * ```json * { * "type": "percent_sessions_percent", * "comparison": { * "value": 10, * "interval": "1h" * }, * "conditionResult": true * } * ``` * * **Event Attribute** * The event's `attribute` value `match` `value` * * - `attribute`: The event attribute to match on. Valid values are: `message`, `platform`, `environment`, `type`, `error.handled`, `error.unhandled`, `error.main_thread`, `exception.type`, `exception.value`, `user.id`, `user.email`, `user.username`, `user.ip_address`, `http.method`, `http.url`, `http.status_code`, `sdk.name`, `stacktrace.code`, `stacktrace.module`, `stacktrace.filename`, `stacktrace.abs_path`, `stacktrace.package`, `unreal.crash_type`, `app.in_foreground`. * - `match`: The comparison operator * - `co`: Contains * - `nc`: Does not contain * - `eq`: Equals * - `ne`: Does not equal * - `sw`: Starts with * - `ew`: Ends with * - `is`: Is set * - `ns`: Is not set * - `value`: A string. Not required when match is `is` or `ns`. * * ```json * { * "type": "event_attribute", * "comparison": { * "match": "co", * "value": "bar", * "attribute": "message" * }, * "conditionResult": true * } * ``` * * **Tagged Event** * The event's tags `key` match `value` * - `key`: The tag value * - `match`: The comparison operator * - `co`: Contains * - `nc`: Does not contain * - `eq`: Equals * - `ne`: Does not equal * - `sw`: Starts with * - `ew`: Ends with * - `is`: Is set * - `ns`: Is not set * - `value`: A string. Not required when match is `is` or `ns`. * * ```json * { * "type": "tagged_event", * "comparison": { * "key": "level", * "match": "eq", * "value": "error" * }, * "conditionResult": true * } * ``` * * **Latest Release** * The event is from the latest release * * ```json * { * "type": "latest_release", * "comparison": true, * "conditionResult": true * } * ``` * * **Release Age** * ```json * { * "type": "latest_adopted_release", * "comparison": { * "environment": "production", * "ageComparison": "older", * "releaseAgeType": "oldest" * }, * "conditionResult": true * } * ``` * * **Event Level** * The event's level is `match` `level` * - `match`: The comparison operator * - `eq`: Equal * - `gte`: Greater than or equal * - `lte`: Less than or equal * - `level`: The event level * - `50`: Fatal * - `40`: Error * - `30`: Warning * - `20`: Info * - `10`: Debug * - `0`: Sample * * ```json * { * "type": "level", * "comparison": { * "level": 50, * "match": "eq" * }, * "conditionResult": true * } * ``` * * ## Actions * A list of actions that take place when all required conditions and filters for the alert are met. See below for a list of possible actions. * * * **Notify on Preferred Channel** * - `data`: A dictionary with the fallthrough type option when choosing to notify Suggested Assignees. Leave empty if notifying a user or team. * - `fallthroughType` * - `ActiveMembers` * - `AllMembers` * - `NoOne` * - `config`: A dictionary with the configuration options for notification. * - `targetType`: The type of recipient to notify * - `user`: User * - `team`: Team * - `issue_owners`: Suggested Assignees * - `targetDisplay`: null * - `targetIdentifier`: The id of the user or team to notify. Leave null for Suggested Assignees. * * ```json * { * "type":"email", * "integrationId":null, * "data":{}, * "config":{ * "targetType":"user", * "targetDisplay":null, * "targetIdentifier":"232692" * }, * "status":"active" * }, * { * "type":"email", * "integrationId":null, * "data":{ * "fallthroughType":"ActiveMembers" * }, * "config":{ * "targetType":"issue_owners", * "targetDisplay":null, * "targetIdentifier":""} * , * "status":"active" * } * ``` * **Notify on Slack** * - `targetDisplay`: The name of the channel to notify in. * `integrationId`: The stringified ID of the integration. * * ```json * { * "type":"slack", * "config":{ * "targetType":"specific", * "targetIdentifier":"", * "targetDisplay":"notify-errors" * }, * "integrationId":"1", * "data":{}, * "status":"active" * } * ``` * * **Notify on PagerDuty** * - `targetDisplay`: The name of the service to create the ticket in. * - `integrationId`: The stringified ID of the integration. * - `data["priority"]`: The severity level for the notification. * * ```json * { * "type":"pagerduty", * "config":{ * "targetType":"specific", * "targetIdentifier":"123456", * "targetDisplay":"Error Service" * }, * "integrationId":"2345", * "data":{ * "priority":"default" * }, * "status":"active" * } * ``` * * **Notify on Discord** * - `targetDisplay`: The name of the service to create the ticket in. * - `integrationId`: The stringified ID of the integration. * - `data["tags"]`: Comma separated list of tags to add to the notification. * * ```json * { * "type":"discord", * "config":{ * "targetType":"specific", * "targetIdentifier":"12345", * "targetDisplay":"", * }, * "integrationId":"1234", * "data":{ * "tags":"transaction,environment" * }, * "status":"active" * } * ``` * * **Notify on MSTeams** * - `targetIdentifier` - The integration ID associated with the Microsoft Teams team. * - `targetDisplay` - The name of the channel to send the notification to. * - `integrationId`: The stringified ID of the integration. * ```json * { * "type":"msteams", * "config":{ * "targetType":"specific", * "targetIdentifier":"19:a4b3kghaghgkjah357y6847@thread.skype", * "targetDisplay":"notify-errors" * }, * "integrationId":"1", * "data":{}, * "status":"active" * } * ``` * * **Notify on OpsGenie** * - `targetDisplay`: The name of the Opsgenie team. * - `targetIdentifier`: The ID of the Opsgenie team to send the notification to. * - `integrationId`: The stringified ID of the integration. * - `data["priority"]`: The priority level for the notification. * * ```json * { * "type":"opsgenie", * "config":{ * "targetType":"specific", * "targetIdentifier":"123456-Error-Service", * "targetDisplay":"Error Service" * }, * "integrationId":"2345", * "data":{ * "priority":"P3" * }, * "status":"active" * } * ``` * * **Notify on Azure DevOps** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"vsts", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{...}, * "status":"active" * } * ``` * * **Create a Jira ticket** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"jira", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{...}, * "status":"active" * } * ``` * * **Create a Jira Server ticket** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"jira_server", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{...}, * "status":"active" * } * ``` * * **Create a GitHub issue** * - `integrationId`: The stringified ID of the integration. * - `data` - A list of any fields you want to include in the ticket as objects. * * ```json * { * "type":"github", * "config":{ * "targetType":"specific", * "targetIdentifier":", * "targetDisplay":"" * }, * "integrationId":"2345", * "data":{ * "additional_fields": { * "assignee": "", * "integration": "2345", * "labels": [], * "repo": "example-repo", * }, * "dynamic_form_fields": [ * { * "choices": [["YourOrg/example-repo", "example-repo"]], * "default": "YourOrg/example-repo", * "label": "GitHub Repository", * "name": "repo", * "required": true * "type": "select", * "updatesForm": true, * "url": "/extensions/github/search/example-repo/1234567/", * }, * ], * }, * "status":"active" * } * ``` * */ action_filters?: Array<{ [key: string]: unknown; }>; /** * * The ID user or team who owns the monitor or alert prefaced by the string 'user' or 'team'. * * **User** * ```json * "user:123456" * ``` * * **Team** * ```json * "team:456789" * ``` * */ owner?: string | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the alert you'd like to query. */ workflow_id: number; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/workflows/{workflow_id}/'; }; export type UpdateOrganizationWorkflowErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationWorkflowResponses = { 200: { id: string; name: string; organizationId: string; createdBy: string | null; dateCreated: string; dateUpdated: string; triggers: { id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; } | null; actionFilters: Array<{ id?: string; organizationId?: string; logicType?: string; conditions?: Array<{ id: string; type: string; comparison: boolean | number; conditionResult: boolean; }> | Array; actions?: Array<{ id?: string; type?: string; integrationId?: string | null; data?: { [key: string]: string; }; config?: { [key: string]: unknown; }; status?: string; }> | Array; }> | null; environment: string | null; config: { [key: string]: unknown; }; detectorIds: Array | null; enabled: boolean; lastTriggered: string | null; owner: string | null; }; }; export type UpdateOrganizationWorkflowResponse = UpdateOrganizationWorkflowResponses[keyof UpdateOrganizationWorkflowResponses]; export type DeleteProjectData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/'; }; export type DeleteProjectErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteProjectResponses = { /** * No Content */ 204: void; }; export type DeleteProjectResponse = DeleteProjectResponses[keyof DeleteProjectResponses]; export type GetProjectData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/'; }; export type GetProjectErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectResponses = { 200: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; team?: { id: string; name: string; slug: string; }; teams: Array<{ id: string; name: string; slug: string; }>; latestRelease: { version: string; } | null; options: { [key: string]: unknown; }; digestsMinDelay: number; digestsMaxDelay: number; subjectPrefix: string; allowedDomains: Array; resolveAge: number; dataScrubber: boolean; dataScrubberDefaults: boolean; safeFields: Array; storeCrashReports: number | null; sensitiveFields: Array; subjectTemplate: string; securityToken: string; securityTokenHeader: string | null; verifySSL: boolean; scrubIPAddresses: boolean; scrapeJavaScript: boolean; enableAutoReleaseCreation: boolean; highlightTags: Array; highlightContext: { [key: string]: unknown; }; highlightPreset: { tags: Array; context: { [key: string]: Array; }; }; groupingConfig: string; derivedGroupingEnhancements: string; groupingEnhancements: string; secondaryGroupingExpiry: number; secondaryGroupingConfig: string | null; fingerprintingRules: string; organization: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; platforms: Array; processingIssues: number; defaultEnvironment: string | null; relayPiiConfig: string | null; builtinSymbolSources: Array; dynamicSamplingBiases: Array<{ [key: string]: string | boolean; }> | null; symbolSources: string; isDynamicallySampled: boolean; tempestFetchScreenshots: boolean; autofixAutomationTuning: string; seerScannerAutomation: boolean; seerNightshiftTweaks: unknown; scmSourceContextEnabled: boolean; debugFilesRole: string | null; }; }; export type GetProjectResponse = GetProjectResponses[keyof GetProjectResponses]; export type UpdateProjectData = { body?: { /** * Enables starring the project within the projects tab. Can be updated with **`project:read`** permission. */ isBookmarked?: boolean; /** * The name for the project */ name?: string; /** * Uniquely identifies a project and is used for the interface. */ slug?: string; /** * The platform for the project */ platform?: string | null; /** * Custom prefix for emails from this project. */ subjectPrefix?: string; /** * The email subject to use (excluding the prefix) for individual alerts. Here are the list of variables you can use: * - `$title` * - `$shortID` * - `$projectID` * - `$orgID` * - `${tag:key}` - such as `${tag:environment}` or `${tag:release}`. */ subjectTemplate?: string; /** * Automatically resolve an issue if it hasn't been seen for this many hours. Set to `0` to disable auto-resolve. */ resolveAge?: number | null; /** * A JSON mapping of context types to lists of strings for their keys. * E.g. `{'user': ['id', 'email']}` */ highlightContext?: { [key: string]: unknown; }; /** * A list of strings with tag keys to highlight on this project's issues. * E.g. `['release', 'environment']` */ highlightTags?: Array; /** * Automatically create releases from ingested events. When disabled, releases must be created manually (e.g. via the Sentry CLI). */ enableAutoReleaseCreation?: boolean; /** * Enable on-demand source context fetching from SCM integrations for stack traces. */ scmSourceContextEnabled?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/'; }; export type UpdateProjectErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateProjectResponses = { 200: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; team?: { id: string; name: string; slug: string; }; teams: Array<{ id: string; name: string; slug: string; }>; latestRelease: { version: string; } | null; options: { [key: string]: unknown; }; digestsMinDelay: number; digestsMaxDelay: number; subjectPrefix: string; allowedDomains: Array; resolveAge: number; dataScrubber: boolean; dataScrubberDefaults: boolean; safeFields: Array; storeCrashReports: number | null; sensitiveFields: Array; subjectTemplate: string; securityToken: string; securityTokenHeader: string | null; verifySSL: boolean; scrubIPAddresses: boolean; scrapeJavaScript: boolean; enableAutoReleaseCreation: boolean; highlightTags: Array; highlightContext: { [key: string]: unknown; }; highlightPreset: { tags: Array; context: { [key: string]: Array; }; }; groupingConfig: string; derivedGroupingEnhancements: string; groupingEnhancements: string; secondaryGroupingExpiry: number; secondaryGroupingConfig: string | null; fingerprintingRules: string; organization: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; platforms: Array; processingIssues: number; defaultEnvironment: string | null; relayPiiConfig: string | null; builtinSymbolSources: Array; dynamicSamplingBiases: Array<{ [key: string]: string | boolean; }> | null; symbolSources: string; isDynamicallySampled: boolean; tempestFetchScreenshots: boolean; autofixAutomationTuning: string; seerScannerAutomation: boolean; seerNightshiftTweaks: unknown; scmSourceContextEnabled: boolean; debugFilesRole: string | null; }; }; export type UpdateProjectResponse = UpdateProjectResponses[keyof UpdateProjectResponses]; export type ListProjectEnvironmentsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: { /** * The visibility of the environments to filter by. Defaults to `visible`. */ visibility?: 'all' | 'hidden' | 'visible'; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/environments/'; }; export type ListProjectEnvironmentsErrors = { /** * Invalid value for 'visibility'. */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectEnvironmentsResponses = { 200: Array<{ id: string; name: string; isHidden: boolean; }>; }; export type ListProjectEnvironmentsResponse = ListProjectEnvironmentsResponses[keyof ListProjectEnvironmentsResponses]; export type UpdateProjectEnvironmentsData = { body: { /** * List of environment names to update. Maximum 1000. */ environmentNames: Array; /** * Specify `true` to hide or `false` to show the specified environments. */ isHidden: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/environments/'; }; export type UpdateProjectEnvironmentsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateProjectEnvironmentsResponses = { 200: Array<{ id: string; name: string; isHidden: boolean; }>; }; export type UpdateProjectEnvironmentsResponse = UpdateProjectEnvironmentsResponses[keyof UpdateProjectEnvironmentsResponses]; export type GetProjectEnvironmentData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The name of the environment. */ environment: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/environments/{environment}/'; }; export type GetProjectEnvironmentErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectEnvironmentResponses = { 200: { id: string; name: string; isHidden: boolean; }; }; export type GetProjectEnvironmentResponse = GetProjectEnvironmentResponses[keyof GetProjectEnvironmentResponses]; export type UpdateProjectEnvironmentData = { body: { /** * Specify `true` to make the environment visible or `false` to make the environment hidden. */ isHidden: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The name of the environment. */ environment: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/environments/{environment}/'; }; export type UpdateProjectEnvironmentErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateProjectEnvironmentResponses = { 200: { id: string; name: string; isHidden: boolean; }; }; export type UpdateProjectEnvironmentResponse = UpdateProjectEnvironmentResponses[keyof UpdateProjectEnvironmentResponses]; export type ListProjectEventsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: { /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * Specify true to include the full event body, including the stacktrace, in the event payload. */ full?: boolean; /** * Return events in pseudo-random order. This is deterministic so an identical query will always return the same events in the same order. */ sample?: boolean; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/events/'; }; export type ListProjectEventsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectEventsResponses = { 200: Array<{ id: string; 'event.type': string; groupID: string | null; eventID: string; projectID: string; message: string; title: string; location: string | null; culprit: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string | null; dateCreated: string; crashFile: string | null; metadata: { [key: string]: unknown; }; }>; }; export type ListProjectEventsResponse = ListProjectEventsResponses[keyof ListProjectEventsResponses]; export type GetProjectEventData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the event. It is a 32-character hexadecimal string as reported by the client. */ event_id: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/events/{event_id}/'; }; export type GetProjectEventErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectEventResponses = { 200: { id: string; groupID: string | null; eventID: string; projectID: string; message: string | null; title: string; location: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string; dateReceived: string | null; contexts: { [key: string]: unknown; } | null; size: number | null; entries: Array; dist: string | null; sdk: { name: string | null; version: string | null; } | null; context: { [key: string]: unknown; } | null; packages: { [key: string]: unknown; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; metadata: { [key: string]: unknown; }; errors: Array<{ type: string; message: string; data: { [key: string]: unknown; }; }>; occurrence: { id: string; projectId: number; eventId: string; fingerprint: Array; issueTitle: string; subtitle: string; resourceId: string | null; evidenceData: { [key: string]: unknown; }; evidenceDisplay: Array<{ name: string; value: string; important: boolean; }>; type: number; detectionTime: number; level: string | null; culprit: string | null; assignee: string | null; priority: number | null; } | null; _meta: { [key: string]: unknown; }; crashFile?: string | null; culprit?: string | null; dateCreated?: string; fingerprints?: Array; groupingConfig?: { id: string; enhancements: string; }; startTimestamp?: number; endTimestamp?: number; measurements?: { [key: string]: { value: number; unit: string | null; }; } | null; breakdowns?: { [key: string]: { [key: string]: { value: number; unit: string | null; }; }; } | null; release: { id?: number; commitCount?: number; data?: { [key: string]: unknown; }; dateCreated?: string; dateReleased?: string | null; deployCount?: number; ref?: string | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; status?: string; url?: string | null; userAgent?: string | null; version?: string | null; versionInfo?: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; } | null; userReport: { id: string; eventID: string; name: string | null; email: string | null; comments: string; dateCreated: string; user: { id: string; username: string | null; email: string | null; name: string | null; ipAddress: string | null; avatarUrl: string | null; } | null; event: { id: string; eventID: string; }; } | null; sdkUpdates: Array<{ [key: string]: unknown; }>; resolvedWith: Array; nextEventID: string | null; previousEventID: string | null; }; }; export type GetProjectEventResponse = GetProjectEventResponses[keyof GetProjectEventResponses]; export type ListProjectEventAttachmentsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the event. It is a 32-character hexadecimal string as reported by the client. */ event_id: string; }; query?: { /** * Filter the attachments by name (substring match) or by attachment kind. Use `is:screenshot` to restrict the results to screenshot attachments. */ query?: string; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/events/{event_id}/attachments/'; }; export type ListProjectEventAttachmentsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectEventAttachmentsResponses = { 200: Array<{ id: string; event_id: string; type: string; name: string; mimetype: string | null; dateCreated: string; size: number; headers: { [key: string]: string | null; }; sha1: string | null; }>; }; export type ListProjectEventAttachmentsResponse = ListProjectEventAttachmentsResponses[keyof ListProjectEventAttachmentsResponses]; export type GetProjectEventAttachmentData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the event. It is a 32-character hexadecimal string as reported by the client. */ event_id: string; /** * The numeric ID of the attachment, as returned from the attachments list endpoint. */ attachment_id: string; }; query?: { /** * If this parameter is present, the response will be a binary file download instead of JSON metadata. The value does not matter — any value (including empty) triggers the download. Depending on where the attachment is stored, the response may be a redirect to the storage service, so clients must follow redirects. */ download?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/events/{event_id}/attachments/{attachment_id}/'; }; export type GetProjectEventAttachmentErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectEventAttachmentResponses = { 200: { id: string; event_id: string; type: string; name: string; mimetype: string | null; dateCreated: string; size: number; headers: { [key: string]: string | null; }; sha1: string | null; }; }; export type GetProjectEventAttachmentResponse = GetProjectEventAttachmentResponses[keyof GetProjectEventAttachmentResponses]; export type GetProjectEventSourceMapDebugData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the event. It is a 32-character hexadecimal string as reported by the client. */ event_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/events/{event_id}/source-map-debug/'; }; export type GetProjectEventSourceMapDebugErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectEventSourceMapDebugResponses = { 200: { dist: string | null; release: string | null; exceptions: Array<{ frames: Array<{ debug_id_process: { debug_id: string | null; uploaded_source_file_with_correct_debug_id: boolean; uploaded_source_map_with_correct_debug_id: boolean; }; release_process: { abs_path: string; matching_source_file_names: Array; matching_source_map_name: string | null; source_map_reference: string | null; source_file_lookup_result: 'found' | 'wrong-dist' | 'unsuccessful'; source_map_lookup_result: 'found' | 'wrong-dist' | 'unsuccessful'; } | null; scraping_process: { source_file: { url: string; status: 'success'; } | { url: string; status: 'not_attempted'; } | { url: string; status: 'failure'; reason: 'not_found' | 'disabled' | 'invalid_host' | 'permission_denied' | 'timeout' | 'download_error' | 'other'; details: string | null; } | { [key: string]: unknown; } | null; source_map: { url: string; status: 'success'; } | { url: string; status: 'not_attempted'; } | { url: string; status: 'failure'; reason: 'not_found' | 'disabled' | 'invalid_host' | 'permission_denied' | 'timeout' | 'download_error' | 'other'; details: string | null; } | { [key: string]: unknown; } | null; }; }>; }>; has_debug_ids: boolean; min_debug_id_sdk_version: string | null; sdk_version: string | null; project_has_some_artifact_bundle: boolean; release_has_some_artifact: boolean; has_uploaded_some_artifact_with_a_debug_id: boolean; sdk_debug_id_support: 'not-supported' | 'unofficial-sdk' | 'needs-upgrade' | 'full'; has_scraping_data: boolean; }; }; export type GetProjectEventSourceMapDebugResponse = GetProjectEventSourceMapDebugResponses[keyof GetProjectEventSourceMapDebugResponses]; export type ListProjectDebugFilesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: { /** * Substring filter matched against object name, debug ID, code ID, CPU name, and file headers. */ query?: string; /** * Filter results to debug information files matching the given debug ID. */ debug_id?: string; /** * Filter results to debug information files matching the given code ID. */ code_id?: string; /** * Restrict results to one or more file formats. */ file_formats?: Array; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/files/dsyms/'; }; export type ListProjectDebugFilesErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectDebugFilesResponses = { 200: Array<{ id: string; uuid: string; debugId: string; codeId: string | null; cpuName: string; objectName: string; symbolType: string; headers: { [key: string]: string; }; size: number; sha1: string; dateCreated: string; data: { [key: string]: unknown; }; }>; }; export type ListProjectDebugFilesResponse2 = ListProjectDebugFilesResponses[keyof ListProjectDebugFilesResponses]; export type ListProjectFiltersData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/filters/'; }; export type ListProjectFiltersErrors = { /** * Forbidden */ 403: unknown; }; export type ListProjectFiltersResponses = { 200: Array<{ id: string; active: boolean | Array; }>; }; export type ListProjectFiltersResponse = ListProjectFiltersResponses[keyof ListProjectFiltersResponses]; export type UpdateProjectFilterData = { body?: { /** * Toggle the browser-extensions, localhost, filtered-transaction, or web-crawlers filter on or off. */ active?: boolean; /** * * Specifies which legacy browser filters should be active. Anything excluded from the list will be * disabled. The options are: * - `ie` - Internet Explorer Version 11 and lower * - `edge` - Edge Version 110 and lower * - `safari` - Safari Version 15 and lower * - `firefox` - Firefox Version 110 and lower * - `chrome` - Chrome Version 110 and lower * - `opera` - Opera Version 99 and lower * - `android` - Android Version 3 and lower * - `opera_mini` - Opera Mini Version 34 and lower * * Deprecated options: * - `ie_pre_9` - Internet Explorer Version 8 and lower * - `ie9` - Internet Explorer Version 9 * - `ie10` - Internet Explorer Version 10 * - `ie11` - Internet Explorer Version 11 * - `safari_pre_6` - Safari Version 5 and lower * - `opera_pre_15` - Opera Version 14 and lower * - `opera_mini_pre_8` - Opera Mini Version 8 and lower * - `android_pre_4` - Android Version 3 and lower * - `edge_pre_79` - Edge Version 18 and lower (non Chromium based) * */ subfilters?: Array<'ie' | 'edge' | 'safari' | 'firefox' | 'chrome' | 'opera' | 'android' | 'opera_mini' | 'ie_pre_9' | 'ie9' | 'ie10' | 'ie11' | 'opera_pre_15' | 'android_pre_4' | 'safari_pre_6' | 'opera_mini_pre_8' | 'edge_pre_79'>; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The type of filter toggle to update. The options are: * - `browser-extensions` - Filter out errors known to be caused by browser extensions. * - `localhost` - Filter out events coming from localhost. This applies to both IPv4 (``127.0.0.1``) * and IPv6 (``::1``) addresses. * - `filtered-transaction` - Filter out transactions for healthcheck and ping endpoints. * - `web-crawlers` - Filter out known web crawlers. Some crawlers may execute pages in incompatible * ways which cause errors that are unlikely to be seen by a normal user. * - `legacy-browser` - Filter out known errors from legacy browsers. Older browsers often give less * accurate information, and while they may report valid issues, the context to understand them is * incorrect or missing. * */ filter_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/filters/{filter_id}/'; }; export type UpdateProjectFilterErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateProjectFilterResponses = { /** * No Content */ 204: void; }; export type UpdateProjectFilterResponse = UpdateProjectFilterResponses[keyof UpdateProjectFilterResponses]; export type ListProjectKeysData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * * Filter client keys by `active` or `inactive`. Defaults to returning all * keys if not specified. * */ status?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/keys/'; }; export type ListProjectKeysErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type ListProjectKeysResponses = { 200: Array<{ id: string; name: string; label: string; public: string | null; secret: string | null; projectId: number; isActive: boolean; rateLimit: { window: number; count: number; } | null; dsn: { secret: string; public: string; csp: string; security: string; minidump: string; nel: string; unreal: string; crons: string; cdn: string; playstation: string; integration: string; otlp_traces: string; otlp_logs: string; }; browserSdkVersion: string; browserSdk: { choices: Array>; }; dateCreated: string | null; dynamicSdkLoaderOptions: { hasReplay: boolean; hasPerformance: boolean; hasDebug: boolean; hasFeedback: boolean; hasLogsAndMetrics: boolean; }; useCase?: string; }>; }; export type ListProjectKeysResponse = ListProjectKeysResponses[keyof ListProjectKeysResponses]; export type CreateProjectKeyData = { body?: { /** * The optional name of the key. If not provided it will be automatically generated. */ name?: string | null; /** * Applies a rate limit to cap the number of errors accepted during a given time window. To * disable entirely set `rateLimit` to null. * ```json * { * "rateLimit": { * "window": 7200, // time in seconds * "count": 1000 // error cap * } * } * ``` */ rateLimit?: { count?: number | null; window?: number | null; }; /** * * `user` * * `profiling` * * `tempest` * * `demo` */ useCase?: 'user' | 'profiling' | 'tempest' | 'demo'; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/keys/'; }; export type CreateProjectKeyErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type CreateProjectKeyResponses = { /** * This represents a Sentry Project Client Key. */ 201: { id: string; name: string; label: string; public: string | null; secret: string | null; projectId: number; isActive: boolean; rateLimit: { window: number; count: number; } | null; dsn: { secret: string; public: string; csp: string; security: string; minidump: string; nel: string; unreal: string; crons: string; cdn: string; playstation: string; integration: string; otlp_traces: string; otlp_logs: string; }; browserSdkVersion: string; browserSdk: { choices: Array>; }; dateCreated: string | null; dynamicSdkLoaderOptions: { hasReplay: boolean; hasPerformance: boolean; hasDebug: boolean; hasFeedback: boolean; hasLogsAndMetrics: boolean; }; useCase?: string; }; }; export type CreateProjectKeyResponse = CreateProjectKeyResponses[keyof CreateProjectKeyResponses]; export type DeleteProjectKeyData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the key to delete. */ key_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/keys/{key_id}/'; }; export type DeleteProjectKeyErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteProjectKeyResponses = { /** * No Content */ 204: void; }; export type DeleteProjectKeyResponse = DeleteProjectKeyResponses[keyof DeleteProjectKeyResponses]; export type GetProjectKeyData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the client key */ key_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/keys/{key_id}/'; }; export type GetProjectKeyErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectKeyResponses = { /** * This represents a Sentry Project Client Key. */ 200: { id: string; name: string; label: string; public: string | null; secret: string | null; projectId: number; isActive: boolean; rateLimit: { window: number; count: number; } | null; dsn: { secret: string; public: string; csp: string; security: string; minidump: string; nel: string; unreal: string; crons: string; cdn: string; playstation: string; integration: string; otlp_traces: string; otlp_logs: string; }; browserSdkVersion: string; browserSdk: { choices: Array>; }; dateCreated: string | null; dynamicSdkLoaderOptions: { hasReplay: boolean; hasPerformance: boolean; hasDebug: boolean; hasFeedback: boolean; hasLogsAndMetrics: boolean; }; useCase?: string; }; }; export type GetProjectKeyResponse = GetProjectKeyResponses[keyof GetProjectKeyResponses]; export type UpdateProjectKeyData = { body?: { /** * The name for the client key */ name?: string; /** * Activate or deactivate the client key. */ isActive?: boolean; /** * Applies a rate limit to cap the number of errors accepted during a given time window. To * disable entirely set `rateLimit` to null. * ```json * { * "rateLimit": { * "window": 7200, // time in seconds * "count": 1000 // error cap * } * } * ``` */ rateLimit?: { count?: number | null; window?: number | null; }; /** * The Sentry Javascript SDK version to use. The currently supported options are: * * * `latest` - Most recent version * * `7.x` - Version 7 releases */ browserSdkVersion?: 'latest' | '7.x'; /** * Configures multiple options for the Javascript Loader Script. * - `Performance Monitoring` * - `Debug Bundles & Logging` * - `Session Replay` - Note that the loader will load the ES6 bundle instead of the ES5 bundle. * - `User Feedback` - Note that the loader will load the ES6 bundle instead of the ES5 bundle. * - `Logs and Metrics` - Note that the loader will load the ES6 bundle instead of the ES5 bundle. Requires SDK >= 10.0.0. * ```json * { * "dynamicSdkLoaderOptions": { * "hasReplay": true, * "hasPerformance": true, * "hasDebug": true, * "hasFeedback": true, * "hasLogsAndMetrics": true * } * } * ``` */ dynamicSdkLoaderOptions?: { hasReplay?: boolean; hasPerformance?: boolean; hasDebug?: boolean; hasFeedback?: boolean; hasLogsAndMetrics?: boolean; }; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the key to update. */ key_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/keys/{key_id}/'; }; export type UpdateProjectKeyErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateProjectKeyResponses = { /** * This represents a Sentry Project Client Key. */ 200: { id: string; name: string; label: string; public: string | null; secret: string | null; projectId: number; isActive: boolean; rateLimit: { window: number; count: number; } | null; dsn: { secret: string; public: string; csp: string; security: string; minidump: string; nel: string; unreal: string; crons: string; cdn: string; playstation: string; integration: string; otlp_traces: string; otlp_logs: string; }; browserSdkVersion: string; browserSdk: { choices: Array>; }; dateCreated: string | null; dynamicSdkLoaderOptions: { hasReplay: boolean; hasPerformance: boolean; hasDebug: boolean; hasFeedback: boolean; hasLogsAndMetrics: boolean; }; useCase?: string; }; }; export type UpdateProjectKeyResponse = UpdateProjectKeyResponses[keyof UpdateProjectKeyResponses]; export type ListProjectMembersData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/members/'; }; export type ListProjectMembersErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type ListProjectMembersResponses = { 200: Array<{ externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | null; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; }>; }; export type ListProjectMembersResponse = ListProjectMembersResponses[keyof ListProjectMembersResponses]; export type DeleteProjectMonitorData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID or slug of the monitor. */ monitor_id_or_slug: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/monitors/{monitor_id_or_slug}/'; }; export type DeleteProjectMonitorErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteProjectMonitorResponses = { /** * Accepted */ 202: unknown; }; export type GetProjectMonitorData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID or slug of the monitor. */ monitor_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/monitors/{monitor_id_or_slug}/'; }; export type GetProjectMonitorErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectMonitorResponses = { 200: { alertRule?: { targets: Array<{ targetIdentifier: number; targetType: string; }>; environment: string; }; id: string; name: string; slug: string; status: string; isMuted: boolean; isUpserting: boolean; config: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; dateCreated: string; project: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }; environments: { name: string; status: string; isMuted: boolean; dateCreated: string; lastCheckIn: string; nextCheckIn: string; nextCheckInLatest: string; activeIncident: { startingTimestamp: string; resolvingTimestamp: string; brokenNotice: { userNotifiedTimestamp: string; environmentMutedTimestamp: string; } | null; } | null; }; owner: { type: 'user' | 'team'; id: string; name: string; email?: string; }; }; }; export type GetProjectMonitorResponse = GetProjectMonitorResponses[keyof GetProjectMonitorResponses]; export type UpdateProjectMonitorData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The project ID or slug to associate the monitor to. */ project: string; /** * Name of the monitor. Used for notifications. If not set the slug will be derived from your monitor name. */ name: string; /** * The configuration for the monitor. */ config: { /** * Currently supports "crontab" or "interval" * * * `crontab` * * `interval` */ schedule_type?: 'crontab' | 'interval'; /** * Varies depending on the schedule_type. Is either a crontab string, or a 2 element tuple for intervals (e.g. [1, 'day']) */ schedule: unknown; /** * How long (in minutes) after the expected checkin time will we wait until we consider the checkin to have been missed. */ checkin_margin?: number | null; /** * How long (in minutes) is the checkin allowed to run for in CheckInStatus.IN_PROGRESS before it is considered failed. */ max_runtime?: number | null; /** * tz database style timezone string * * * `Africa/Abidjan` * * `Africa/Accra` * * `Africa/Addis_Ababa` * * `Africa/Algiers` * * `Africa/Asmara` * * `Africa/Asmera` * * `Africa/Bamako` * * `Africa/Bangui` * * `Africa/Banjul` * * `Africa/Bissau` * * `Africa/Blantyre` * * `Africa/Brazzaville` * * `Africa/Bujumbura` * * `Africa/Cairo` * * `Africa/Casablanca` * * `Africa/Ceuta` * * `Africa/Conakry` * * `Africa/Dakar` * * `Africa/Dar_es_Salaam` * * `Africa/Djibouti` * * `Africa/Douala` * * `Africa/El_Aaiun` * * `Africa/Freetown` * * `Africa/Gaborone` * * `Africa/Harare` * * `Africa/Johannesburg` * * `Africa/Juba` * * `Africa/Kampala` * * `Africa/Khartoum` * * `Africa/Kigali` * * `Africa/Kinshasa` * * `Africa/Lagos` * * `Africa/Libreville` * * `Africa/Lome` * * `Africa/Luanda` * * `Africa/Lubumbashi` * * `Africa/Lusaka` * * `Africa/Malabo` * * `Africa/Maputo` * * `Africa/Maseru` * * `Africa/Mbabane` * * `Africa/Mogadishu` * * `Africa/Monrovia` * * `Africa/Nairobi` * * `Africa/Ndjamena` * * `Africa/Niamey` * * `Africa/Nouakchott` * * `Africa/Ouagadougou` * * `Africa/Porto-Novo` * * `Africa/Sao_Tome` * * `Africa/Timbuktu` * * `Africa/Tripoli` * * `Africa/Tunis` * * `Africa/Windhoek` * * `America/Adak` * * `America/Anchorage` * * `America/Anguilla` * * `America/Antigua` * * `America/Araguaina` * * `America/Argentina/Buenos_Aires` * * `America/Argentina/Catamarca` * * `America/Argentina/ComodRivadavia` * * `America/Argentina/Cordoba` * * `America/Argentina/Jujuy` * * `America/Argentina/La_Rioja` * * `America/Argentina/Mendoza` * * `America/Argentina/Rio_Gallegos` * * `America/Argentina/Salta` * * `America/Argentina/San_Juan` * * `America/Argentina/San_Luis` * * `America/Argentina/Tucuman` * * `America/Argentina/Ushuaia` * * `America/Aruba` * * `America/Asuncion` * * `America/Atikokan` * * `America/Atka` * * `America/Bahia` * * `America/Bahia_Banderas` * * `America/Barbados` * * `America/Belem` * * `America/Belize` * * `America/Blanc-Sablon` * * `America/Boa_Vista` * * `America/Bogota` * * `America/Boise` * * `America/Buenos_Aires` * * `America/Cambridge_Bay` * * `America/Campo_Grande` * * `America/Cancun` * * `America/Caracas` * * `America/Catamarca` * * `America/Cayenne` * * `America/Cayman` * * `America/Chicago` * * `America/Chihuahua` * * `America/Ciudad_Juarez` * * `America/Coral_Harbour` * * `America/Cordoba` * * `America/Costa_Rica` * * `America/Coyhaique` * * `America/Creston` * * `America/Cuiaba` * * `America/Curacao` * * `America/Danmarkshavn` * * `America/Dawson` * * `America/Dawson_Creek` * * `America/Denver` * * `America/Detroit` * * `America/Dominica` * * `America/Edmonton` * * `America/Eirunepe` * * `America/El_Salvador` * * `America/Ensenada` * * `America/Fort_Nelson` * * `America/Fort_Wayne` * * `America/Fortaleza` * * `America/Glace_Bay` * * `America/Godthab` * * `America/Goose_Bay` * * `America/Grand_Turk` * * `America/Grenada` * * `America/Guadeloupe` * * `America/Guatemala` * * `America/Guayaquil` * * `America/Guyana` * * `America/Halifax` * * `America/Havana` * * `America/Hermosillo` * * `America/Indiana/Indianapolis` * * `America/Indiana/Knox` * * `America/Indiana/Marengo` * * `America/Indiana/Petersburg` * * `America/Indiana/Tell_City` * * `America/Indiana/Vevay` * * `America/Indiana/Vincennes` * * `America/Indiana/Winamac` * * `America/Indianapolis` * * `America/Inuvik` * * `America/Iqaluit` * * `America/Jamaica` * * `America/Jujuy` * * `America/Juneau` * * `America/Kentucky/Louisville` * * `America/Kentucky/Monticello` * * `America/Knox_IN` * * `America/Kralendijk` * * `America/La_Paz` * * `America/Lima` * * `America/Los_Angeles` * * `America/Louisville` * * `America/Lower_Princes` * * `America/Maceio` * * `America/Managua` * * `America/Manaus` * * `America/Marigot` * * `America/Martinique` * * `America/Matamoros` * * `America/Mazatlan` * * `America/Mendoza` * * `America/Menominee` * * `America/Merida` * * `America/Metlakatla` * * `America/Mexico_City` * * `America/Miquelon` * * `America/Moncton` * * `America/Monterrey` * * `America/Montevideo` * * `America/Montreal` * * `America/Montserrat` * * `America/Nassau` * * `America/New_York` * * `America/Nipigon` * * `America/Nome` * * `America/Noronha` * * `America/North_Dakota/Beulah` * * `America/North_Dakota/Center` * * `America/North_Dakota/New_Salem` * * `America/Nuuk` * * `America/Ojinaga` * * `America/Panama` * * `America/Pangnirtung` * * `America/Paramaribo` * * `America/Phoenix` * * `America/Port-au-Prince` * * `America/Port_of_Spain` * * `America/Porto_Acre` * * `America/Porto_Velho` * * `America/Puerto_Rico` * * `America/Punta_Arenas` * * `America/Rainy_River` * * `America/Rankin_Inlet` * * `America/Recife` * * `America/Regina` * * `America/Resolute` * * `America/Rio_Branco` * * `America/Rosario` * * `America/Santa_Isabel` * * `America/Santarem` * * `America/Santiago` * * `America/Santo_Domingo` * * `America/Sao_Paulo` * * `America/Scoresbysund` * * `America/Shiprock` * * `America/Sitka` * * `America/St_Barthelemy` * * `America/St_Johns` * * `America/St_Kitts` * * `America/St_Lucia` * * `America/St_Thomas` * * `America/St_Vincent` * * `America/Swift_Current` * * `America/Tegucigalpa` * * `America/Thule` * * `America/Thunder_Bay` * * `America/Tijuana` * * `America/Toronto` * * `America/Tortola` * * `America/Vancouver` * * `America/Virgin` * * `America/Whitehorse` * * `America/Winnipeg` * * `America/Yakutat` * * `America/Yellowknife` * * `Antarctica/Casey` * * `Antarctica/Davis` * * `Antarctica/DumontDUrville` * * `Antarctica/Macquarie` * * `Antarctica/Mawson` * * `Antarctica/McMurdo` * * `Antarctica/Palmer` * * `Antarctica/Rothera` * * `Antarctica/South_Pole` * * `Antarctica/Syowa` * * `Antarctica/Troll` * * `Antarctica/Vostok` * * `Arctic/Longyearbyen` * * `Asia/Aden` * * `Asia/Almaty` * * `Asia/Amman` * * `Asia/Anadyr` * * `Asia/Aqtau` * * `Asia/Aqtobe` * * `Asia/Ashgabat` * * `Asia/Ashkhabad` * * `Asia/Atyrau` * * `Asia/Baghdad` * * `Asia/Bahrain` * * `Asia/Baku` * * `Asia/Bangkok` * * `Asia/Barnaul` * * `Asia/Beirut` * * `Asia/Bishkek` * * `Asia/Brunei` * * `Asia/Calcutta` * * `Asia/Chita` * * `Asia/Choibalsan` * * `Asia/Chongqing` * * `Asia/Chungking` * * `Asia/Colombo` * * `Asia/Dacca` * * `Asia/Damascus` * * `Asia/Dhaka` * * `Asia/Dili` * * `Asia/Dubai` * * `Asia/Dushanbe` * * `Asia/Famagusta` * * `Asia/Gaza` * * `Asia/Harbin` * * `Asia/Hebron` * * `Asia/Ho_Chi_Minh` * * `Asia/Hong_Kong` * * `Asia/Hovd` * * `Asia/Irkutsk` * * `Asia/Istanbul` * * `Asia/Jakarta` * * `Asia/Jayapura` * * `Asia/Jerusalem` * * `Asia/Kabul` * * `Asia/Kamchatka` * * `Asia/Karachi` * * `Asia/Kashgar` * * `Asia/Kathmandu` * * `Asia/Katmandu` * * `Asia/Khandyga` * * `Asia/Kolkata` * * `Asia/Krasnoyarsk` * * `Asia/Kuala_Lumpur` * * `Asia/Kuching` * * `Asia/Kuwait` * * `Asia/Macao` * * `Asia/Macau` * * `Asia/Magadan` * * `Asia/Makassar` * * `Asia/Manila` * * `Asia/Muscat` * * `Asia/Nicosia` * * `Asia/Novokuznetsk` * * `Asia/Novosibirsk` * * `Asia/Omsk` * * `Asia/Oral` * * `Asia/Phnom_Penh` * * `Asia/Pontianak` * * `Asia/Pyongyang` * * `Asia/Qatar` * * `Asia/Qostanay` * * `Asia/Qyzylorda` * * `Asia/Rangoon` * * `Asia/Riyadh` * * `Asia/Saigon` * * `Asia/Sakhalin` * * `Asia/Samarkand` * * `Asia/Seoul` * * `Asia/Shanghai` * * `Asia/Singapore` * * `Asia/Srednekolymsk` * * `Asia/Taipei` * * `Asia/Tashkent` * * `Asia/Tbilisi` * * `Asia/Tehran` * * `Asia/Tel_Aviv` * * `Asia/Thimbu` * * `Asia/Thimphu` * * `Asia/Tokyo` * * `Asia/Tomsk` * * `Asia/Ujung_Pandang` * * `Asia/Ulaanbaatar` * * `Asia/Ulan_Bator` * * `Asia/Urumqi` * * `Asia/Ust-Nera` * * `Asia/Vientiane` * * `Asia/Vladivostok` * * `Asia/Yakutsk` * * `Asia/Yangon` * * `Asia/Yekaterinburg` * * `Asia/Yerevan` * * `Atlantic/Azores` * * `Atlantic/Bermuda` * * `Atlantic/Canary` * * `Atlantic/Cape_Verde` * * `Atlantic/Faeroe` * * `Atlantic/Faroe` * * `Atlantic/Jan_Mayen` * * `Atlantic/Madeira` * * `Atlantic/Reykjavik` * * `Atlantic/South_Georgia` * * `Atlantic/St_Helena` * * `Atlantic/Stanley` * * `Australia/ACT` * * `Australia/Adelaide` * * `Australia/Brisbane` * * `Australia/Broken_Hill` * * `Australia/Canberra` * * `Australia/Currie` * * `Australia/Darwin` * * `Australia/Eucla` * * `Australia/Hobart` * * `Australia/LHI` * * `Australia/Lindeman` * * `Australia/Lord_Howe` * * `Australia/Melbourne` * * `Australia/NSW` * * `Australia/North` * * `Australia/Perth` * * `Australia/Queensland` * * `Australia/South` * * `Australia/Sydney` * * `Australia/Tasmania` * * `Australia/Victoria` * * `Australia/West` * * `Australia/Yancowinna` * * `Brazil/Acre` * * `Brazil/DeNoronha` * * `Brazil/East` * * `Brazil/West` * * `CET` * * `CST6CDT` * * `Canada/Atlantic` * * `Canada/Central` * * `Canada/Eastern` * * `Canada/Mountain` * * `Canada/Newfoundland` * * `Canada/Pacific` * * `Canada/Saskatchewan` * * `Canada/Yukon` * * `Chile/Continental` * * `Chile/EasterIsland` * * `Cuba` * * `EET` * * `EST` * * `EST5EDT` * * `Egypt` * * `Eire` * * `Etc/GMT` * * `Etc/GMT+0` * * `Etc/GMT+1` * * `Etc/GMT+10` * * `Etc/GMT+11` * * `Etc/GMT+12` * * `Etc/GMT+2` * * `Etc/GMT+3` * * `Etc/GMT+4` * * `Etc/GMT+5` * * `Etc/GMT+6` * * `Etc/GMT+7` * * `Etc/GMT+8` * * `Etc/GMT+9` * * `Etc/GMT-0` * * `Etc/GMT-1` * * `Etc/GMT-10` * * `Etc/GMT-11` * * `Etc/GMT-12` * * `Etc/GMT-13` * * `Etc/GMT-14` * * `Etc/GMT-2` * * `Etc/GMT-3` * * `Etc/GMT-4` * * `Etc/GMT-5` * * `Etc/GMT-6` * * `Etc/GMT-7` * * `Etc/GMT-8` * * `Etc/GMT-9` * * `Etc/GMT0` * * `Etc/Greenwich` * * `Etc/UCT` * * `Etc/UTC` * * `Etc/Universal` * * `Etc/Zulu` * * `Europe/Amsterdam` * * `Europe/Andorra` * * `Europe/Astrakhan` * * `Europe/Athens` * * `Europe/Belfast` * * `Europe/Belgrade` * * `Europe/Berlin` * * `Europe/Bratislava` * * `Europe/Brussels` * * `Europe/Bucharest` * * `Europe/Budapest` * * `Europe/Busingen` * * `Europe/Chisinau` * * `Europe/Copenhagen` * * `Europe/Dublin` * * `Europe/Gibraltar` * * `Europe/Guernsey` * * `Europe/Helsinki` * * `Europe/Isle_of_Man` * * `Europe/Istanbul` * * `Europe/Jersey` * * `Europe/Kaliningrad` * * `Europe/Kiev` * * `Europe/Kirov` * * `Europe/Kyiv` * * `Europe/Lisbon` * * `Europe/Ljubljana` * * `Europe/London` * * `Europe/Luxembourg` * * `Europe/Madrid` * * `Europe/Malta` * * `Europe/Mariehamn` * * `Europe/Minsk` * * `Europe/Monaco` * * `Europe/Moscow` * * `Europe/Nicosia` * * `Europe/Oslo` * * `Europe/Paris` * * `Europe/Podgorica` * * `Europe/Prague` * * `Europe/Riga` * * `Europe/Rome` * * `Europe/Samara` * * `Europe/San_Marino` * * `Europe/Sarajevo` * * `Europe/Saratov` * * `Europe/Simferopol` * * `Europe/Skopje` * * `Europe/Sofia` * * `Europe/Stockholm` * * `Europe/Tallinn` * * `Europe/Tirane` * * `Europe/Tiraspol` * * `Europe/Ulyanovsk` * * `Europe/Uzhgorod` * * `Europe/Vaduz` * * `Europe/Vatican` * * `Europe/Vienna` * * `Europe/Vilnius` * * `Europe/Volgograd` * * `Europe/Warsaw` * * `Europe/Zagreb` * * `Europe/Zaporozhye` * * `Europe/Zurich` * * `GB` * * `GB-Eire` * * `GMT` * * `GMT+0` * * `GMT-0` * * `GMT0` * * `Greenwich` * * `HST` * * `Hongkong` * * `Iceland` * * `Indian/Antananarivo` * * `Indian/Chagos` * * `Indian/Christmas` * * `Indian/Cocos` * * `Indian/Comoro` * * `Indian/Kerguelen` * * `Indian/Mahe` * * `Indian/Maldives` * * `Indian/Mauritius` * * `Indian/Mayotte` * * `Indian/Reunion` * * `Iran` * * `Israel` * * `Jamaica` * * `Japan` * * `Kwajalein` * * `Libya` * * `MET` * * `MST` * * `MST7MDT` * * `Mexico/BajaNorte` * * `Mexico/BajaSur` * * `Mexico/General` * * `NZ` * * `NZ-CHAT` * * `Navajo` * * `PRC` * * `PST8PDT` * * `Pacific/Apia` * * `Pacific/Auckland` * * `Pacific/Bougainville` * * `Pacific/Chatham` * * `Pacific/Chuuk` * * `Pacific/Easter` * * `Pacific/Efate` * * `Pacific/Enderbury` * * `Pacific/Fakaofo` * * `Pacific/Fiji` * * `Pacific/Funafuti` * * `Pacific/Galapagos` * * `Pacific/Gambier` * * `Pacific/Guadalcanal` * * `Pacific/Guam` * * `Pacific/Honolulu` * * `Pacific/Johnston` * * `Pacific/Kanton` * * `Pacific/Kiritimati` * * `Pacific/Kosrae` * * `Pacific/Kwajalein` * * `Pacific/Majuro` * * `Pacific/Marquesas` * * `Pacific/Midway` * * `Pacific/Nauru` * * `Pacific/Niue` * * `Pacific/Norfolk` * * `Pacific/Noumea` * * `Pacific/Pago_Pago` * * `Pacific/Palau` * * `Pacific/Pitcairn` * * `Pacific/Pohnpei` * * `Pacific/Ponape` * * `Pacific/Port_Moresby` * * `Pacific/Rarotonga` * * `Pacific/Saipan` * * `Pacific/Samoa` * * `Pacific/Tahiti` * * `Pacific/Tarawa` * * `Pacific/Tongatapu` * * `Pacific/Truk` * * `Pacific/Wake` * * `Pacific/Wallis` * * `Pacific/Yap` * * `Poland` * * `Portugal` * * `ROC` * * `ROK` * * `Singapore` * * `Turkey` * * `UCT` * * `US/Alaska` * * `US/Aleutian` * * `US/Arizona` * * `US/Central` * * `US/East-Indiana` * * `US/Eastern` * * `US/Hawaii` * * `US/Indiana-Starke` * * `US/Michigan` * * `US/Mountain` * * `US/Pacific` * * `US/Samoa` * * `UTC` * * `Universal` * * `W-SU` * * `WET` * * `Zulu` * * `localtime` */ timezone?: 'Africa/Abidjan' | 'Africa/Accra' | 'Africa/Addis_Ababa' | 'Africa/Algiers' | 'Africa/Asmara' | 'Africa/Asmera' | 'Africa/Bamako' | 'Africa/Bangui' | 'Africa/Banjul' | 'Africa/Bissau' | 'Africa/Blantyre' | 'Africa/Brazzaville' | 'Africa/Bujumbura' | 'Africa/Cairo' | 'Africa/Casablanca' | 'Africa/Ceuta' | 'Africa/Conakry' | 'Africa/Dakar' | 'Africa/Dar_es_Salaam' | 'Africa/Djibouti' | 'Africa/Douala' | 'Africa/El_Aaiun' | 'Africa/Freetown' | 'Africa/Gaborone' | 'Africa/Harare' | 'Africa/Johannesburg' | 'Africa/Juba' | 'Africa/Kampala' | 'Africa/Khartoum' | 'Africa/Kigali' | 'Africa/Kinshasa' | 'Africa/Lagos' | 'Africa/Libreville' | 'Africa/Lome' | 'Africa/Luanda' | 'Africa/Lubumbashi' | 'Africa/Lusaka' | 'Africa/Malabo' | 'Africa/Maputo' | 'Africa/Maseru' | 'Africa/Mbabane' | 'Africa/Mogadishu' | 'Africa/Monrovia' | 'Africa/Nairobi' | 'Africa/Ndjamena' | 'Africa/Niamey' | 'Africa/Nouakchott' | 'Africa/Ouagadougou' | 'Africa/Porto-Novo' | 'Africa/Sao_Tome' | 'Africa/Timbuktu' | 'Africa/Tripoli' | 'Africa/Tunis' | 'Africa/Windhoek' | 'America/Adak' | 'America/Anchorage' | 'America/Anguilla' | 'America/Antigua' | 'America/Araguaina' | 'America/Argentina/Buenos_Aires' | 'America/Argentina/Catamarca' | 'America/Argentina/ComodRivadavia' | 'America/Argentina/Cordoba' | 'America/Argentina/Jujuy' | 'America/Argentina/La_Rioja' | 'America/Argentina/Mendoza' | 'America/Argentina/Rio_Gallegos' | 'America/Argentina/Salta' | 'America/Argentina/San_Juan' | 'America/Argentina/San_Luis' | 'America/Argentina/Tucuman' | 'America/Argentina/Ushuaia' | 'America/Aruba' | 'America/Asuncion' | 'America/Atikokan' | 'America/Atka' | 'America/Bahia' | 'America/Bahia_Banderas' | 'America/Barbados' | 'America/Belem' | 'America/Belize' | 'America/Blanc-Sablon' | 'America/Boa_Vista' | 'America/Bogota' | 'America/Boise' | 'America/Buenos_Aires' | 'America/Cambridge_Bay' | 'America/Campo_Grande' | 'America/Cancun' | 'America/Caracas' | 'America/Catamarca' | 'America/Cayenne' | 'America/Cayman' | 'America/Chicago' | 'America/Chihuahua' | 'America/Ciudad_Juarez' | 'America/Coral_Harbour' | 'America/Cordoba' | 'America/Costa_Rica' | 'America/Coyhaique' | 'America/Creston' | 'America/Cuiaba' | 'America/Curacao' | 'America/Danmarkshavn' | 'America/Dawson' | 'America/Dawson_Creek' | 'America/Denver' | 'America/Detroit' | 'America/Dominica' | 'America/Edmonton' | 'America/Eirunepe' | 'America/El_Salvador' | 'America/Ensenada' | 'America/Fort_Nelson' | 'America/Fort_Wayne' | 'America/Fortaleza' | 'America/Glace_Bay' | 'America/Godthab' | 'America/Goose_Bay' | 'America/Grand_Turk' | 'America/Grenada' | 'America/Guadeloupe' | 'America/Guatemala' | 'America/Guayaquil' | 'America/Guyana' | 'America/Halifax' | 'America/Havana' | 'America/Hermosillo' | 'America/Indiana/Indianapolis' | 'America/Indiana/Knox' | 'America/Indiana/Marengo' | 'America/Indiana/Petersburg' | 'America/Indiana/Tell_City' | 'America/Indiana/Vevay' | 'America/Indiana/Vincennes' | 'America/Indiana/Winamac' | 'America/Indianapolis' | 'America/Inuvik' | 'America/Iqaluit' | 'America/Jamaica' | 'America/Jujuy' | 'America/Juneau' | 'America/Kentucky/Louisville' | 'America/Kentucky/Monticello' | 'America/Knox_IN' | 'America/Kralendijk' | 'America/La_Paz' | 'America/Lima' | 'America/Los_Angeles' | 'America/Louisville' | 'America/Lower_Princes' | 'America/Maceio' | 'America/Managua' | 'America/Manaus' | 'America/Marigot' | 'America/Martinique' | 'America/Matamoros' | 'America/Mazatlan' | 'America/Mendoza' | 'America/Menominee' | 'America/Merida' | 'America/Metlakatla' | 'America/Mexico_City' | 'America/Miquelon' | 'America/Moncton' | 'America/Monterrey' | 'America/Montevideo' | 'America/Montreal' | 'America/Montserrat' | 'America/Nassau' | 'America/New_York' | 'America/Nipigon' | 'America/Nome' | 'America/Noronha' | 'America/North_Dakota/Beulah' | 'America/North_Dakota/Center' | 'America/North_Dakota/New_Salem' | 'America/Nuuk' | 'America/Ojinaga' | 'America/Panama' | 'America/Pangnirtung' | 'America/Paramaribo' | 'America/Phoenix' | 'America/Port-au-Prince' | 'America/Port_of_Spain' | 'America/Porto_Acre' | 'America/Porto_Velho' | 'America/Puerto_Rico' | 'America/Punta_Arenas' | 'America/Rainy_River' | 'America/Rankin_Inlet' | 'America/Recife' | 'America/Regina' | 'America/Resolute' | 'America/Rio_Branco' | 'America/Rosario' | 'America/Santa_Isabel' | 'America/Santarem' | 'America/Santiago' | 'America/Santo_Domingo' | 'America/Sao_Paulo' | 'America/Scoresbysund' | 'America/Shiprock' | 'America/Sitka' | 'America/St_Barthelemy' | 'America/St_Johns' | 'America/St_Kitts' | 'America/St_Lucia' | 'America/St_Thomas' | 'America/St_Vincent' | 'America/Swift_Current' | 'America/Tegucigalpa' | 'America/Thule' | 'America/Thunder_Bay' | 'America/Tijuana' | 'America/Toronto' | 'America/Tortola' | 'America/Vancouver' | 'America/Virgin' | 'America/Whitehorse' | 'America/Winnipeg' | 'America/Yakutat' | 'America/Yellowknife' | 'Antarctica/Casey' | 'Antarctica/Davis' | 'Antarctica/DumontDUrville' | 'Antarctica/Macquarie' | 'Antarctica/Mawson' | 'Antarctica/McMurdo' | 'Antarctica/Palmer' | 'Antarctica/Rothera' | 'Antarctica/South_Pole' | 'Antarctica/Syowa' | 'Antarctica/Troll' | 'Antarctica/Vostok' | 'Arctic/Longyearbyen' | 'Asia/Aden' | 'Asia/Almaty' | 'Asia/Amman' | 'Asia/Anadyr' | 'Asia/Aqtau' | 'Asia/Aqtobe' | 'Asia/Ashgabat' | 'Asia/Ashkhabad' | 'Asia/Atyrau' | 'Asia/Baghdad' | 'Asia/Bahrain' | 'Asia/Baku' | 'Asia/Bangkok' | 'Asia/Barnaul' | 'Asia/Beirut' | 'Asia/Bishkek' | 'Asia/Brunei' | 'Asia/Calcutta' | 'Asia/Chita' | 'Asia/Choibalsan' | 'Asia/Chongqing' | 'Asia/Chungking' | 'Asia/Colombo' | 'Asia/Dacca' | 'Asia/Damascus' | 'Asia/Dhaka' | 'Asia/Dili' | 'Asia/Dubai' | 'Asia/Dushanbe' | 'Asia/Famagusta' | 'Asia/Gaza' | 'Asia/Harbin' | 'Asia/Hebron' | 'Asia/Ho_Chi_Minh' | 'Asia/Hong_Kong' | 'Asia/Hovd' | 'Asia/Irkutsk' | 'Asia/Istanbul' | 'Asia/Jakarta' | 'Asia/Jayapura' | 'Asia/Jerusalem' | 'Asia/Kabul' | 'Asia/Kamchatka' | 'Asia/Karachi' | 'Asia/Kashgar' | 'Asia/Kathmandu' | 'Asia/Katmandu' | 'Asia/Khandyga' | 'Asia/Kolkata' | 'Asia/Krasnoyarsk' | 'Asia/Kuala_Lumpur' | 'Asia/Kuching' | 'Asia/Kuwait' | 'Asia/Macao' | 'Asia/Macau' | 'Asia/Magadan' | 'Asia/Makassar' | 'Asia/Manila' | 'Asia/Muscat' | 'Asia/Nicosia' | 'Asia/Novokuznetsk' | 'Asia/Novosibirsk' | 'Asia/Omsk' | 'Asia/Oral' | 'Asia/Phnom_Penh' | 'Asia/Pontianak' | 'Asia/Pyongyang' | 'Asia/Qatar' | 'Asia/Qostanay' | 'Asia/Qyzylorda' | 'Asia/Rangoon' | 'Asia/Riyadh' | 'Asia/Saigon' | 'Asia/Sakhalin' | 'Asia/Samarkand' | 'Asia/Seoul' | 'Asia/Shanghai' | 'Asia/Singapore' | 'Asia/Srednekolymsk' | 'Asia/Taipei' | 'Asia/Tashkent' | 'Asia/Tbilisi' | 'Asia/Tehran' | 'Asia/Tel_Aviv' | 'Asia/Thimbu' | 'Asia/Thimphu' | 'Asia/Tokyo' | 'Asia/Tomsk' | 'Asia/Ujung_Pandang' | 'Asia/Ulaanbaatar' | 'Asia/Ulan_Bator' | 'Asia/Urumqi' | 'Asia/Ust-Nera' | 'Asia/Vientiane' | 'Asia/Vladivostok' | 'Asia/Yakutsk' | 'Asia/Yangon' | 'Asia/Yekaterinburg' | 'Asia/Yerevan' | 'Atlantic/Azores' | 'Atlantic/Bermuda' | 'Atlantic/Canary' | 'Atlantic/Cape_Verde' | 'Atlantic/Faeroe' | 'Atlantic/Faroe' | 'Atlantic/Jan_Mayen' | 'Atlantic/Madeira' | 'Atlantic/Reykjavik' | 'Atlantic/South_Georgia' | 'Atlantic/St_Helena' | 'Atlantic/Stanley' | 'Australia/ACT' | 'Australia/Adelaide' | 'Australia/Brisbane' | 'Australia/Broken_Hill' | 'Australia/Canberra' | 'Australia/Currie' | 'Australia/Darwin' | 'Australia/Eucla' | 'Australia/Hobart' | 'Australia/LHI' | 'Australia/Lindeman' | 'Australia/Lord_Howe' | 'Australia/Melbourne' | 'Australia/NSW' | 'Australia/North' | 'Australia/Perth' | 'Australia/Queensland' | 'Australia/South' | 'Australia/Sydney' | 'Australia/Tasmania' | 'Australia/Victoria' | 'Australia/West' | 'Australia/Yancowinna' | 'Brazil/Acre' | 'Brazil/DeNoronha' | 'Brazil/East' | 'Brazil/West' | 'CET' | 'CST6CDT' | 'Canada/Atlantic' | 'Canada/Central' | 'Canada/Eastern' | 'Canada/Mountain' | 'Canada/Newfoundland' | 'Canada/Pacific' | 'Canada/Saskatchewan' | 'Canada/Yukon' | 'Chile/Continental' | 'Chile/EasterIsland' | 'Cuba' | 'EET' | 'EST' | 'EST5EDT' | 'Egypt' | 'Eire' | 'Etc/GMT' | 'Etc/GMT+0' | 'Etc/GMT+1' | 'Etc/GMT+10' | 'Etc/GMT+11' | 'Etc/GMT+12' | 'Etc/GMT+2' | 'Etc/GMT+3' | 'Etc/GMT+4' | 'Etc/GMT+5' | 'Etc/GMT+6' | 'Etc/GMT+7' | 'Etc/GMT+8' | 'Etc/GMT+9' | 'Etc/GMT-0' | 'Etc/GMT-1' | 'Etc/GMT-10' | 'Etc/GMT-11' | 'Etc/GMT-12' | 'Etc/GMT-13' | 'Etc/GMT-14' | 'Etc/GMT-2' | 'Etc/GMT-3' | 'Etc/GMT-4' | 'Etc/GMT-5' | 'Etc/GMT-6' | 'Etc/GMT-7' | 'Etc/GMT-8' | 'Etc/GMT-9' | 'Etc/GMT0' | 'Etc/Greenwich' | 'Etc/UCT' | 'Etc/UTC' | 'Etc/Universal' | 'Etc/Zulu' | 'Europe/Amsterdam' | 'Europe/Andorra' | 'Europe/Astrakhan' | 'Europe/Athens' | 'Europe/Belfast' | 'Europe/Belgrade' | 'Europe/Berlin' | 'Europe/Bratislava' | 'Europe/Brussels' | 'Europe/Bucharest' | 'Europe/Budapest' | 'Europe/Busingen' | 'Europe/Chisinau' | 'Europe/Copenhagen' | 'Europe/Dublin' | 'Europe/Gibraltar' | 'Europe/Guernsey' | 'Europe/Helsinki' | 'Europe/Isle_of_Man' | 'Europe/Istanbul' | 'Europe/Jersey' | 'Europe/Kaliningrad' | 'Europe/Kiev' | 'Europe/Kirov' | 'Europe/Kyiv' | 'Europe/Lisbon' | 'Europe/Ljubljana' | 'Europe/London' | 'Europe/Luxembourg' | 'Europe/Madrid' | 'Europe/Malta' | 'Europe/Mariehamn' | 'Europe/Minsk' | 'Europe/Monaco' | 'Europe/Moscow' | 'Europe/Nicosia' | 'Europe/Oslo' | 'Europe/Paris' | 'Europe/Podgorica' | 'Europe/Prague' | 'Europe/Riga' | 'Europe/Rome' | 'Europe/Samara' | 'Europe/San_Marino' | 'Europe/Sarajevo' | 'Europe/Saratov' | 'Europe/Simferopol' | 'Europe/Skopje' | 'Europe/Sofia' | 'Europe/Stockholm' | 'Europe/Tallinn' | 'Europe/Tirane' | 'Europe/Tiraspol' | 'Europe/Ulyanovsk' | 'Europe/Uzhgorod' | 'Europe/Vaduz' | 'Europe/Vatican' | 'Europe/Vienna' | 'Europe/Vilnius' | 'Europe/Volgograd' | 'Europe/Warsaw' | 'Europe/Zagreb' | 'Europe/Zaporozhye' | 'Europe/Zurich' | 'GB' | 'GB-Eire' | 'GMT' | 'GMT+0' | 'GMT-0' | 'GMT0' | 'Greenwich' | 'HST' | 'Hongkong' | 'Iceland' | 'Indian/Antananarivo' | 'Indian/Chagos' | 'Indian/Christmas' | 'Indian/Cocos' | 'Indian/Comoro' | 'Indian/Kerguelen' | 'Indian/Mahe' | 'Indian/Maldives' | 'Indian/Mauritius' | 'Indian/Mayotte' | 'Indian/Reunion' | 'Iran' | 'Israel' | 'Jamaica' | 'Japan' | 'Kwajalein' | 'Libya' | 'MET' | 'MST' | 'MST7MDT' | 'Mexico/BajaNorte' | 'Mexico/BajaSur' | 'Mexico/General' | 'NZ' | 'NZ-CHAT' | 'Navajo' | 'PRC' | 'PST8PDT' | 'Pacific/Apia' | 'Pacific/Auckland' | 'Pacific/Bougainville' | 'Pacific/Chatham' | 'Pacific/Chuuk' | 'Pacific/Easter' | 'Pacific/Efate' | 'Pacific/Enderbury' | 'Pacific/Fakaofo' | 'Pacific/Fiji' | 'Pacific/Funafuti' | 'Pacific/Galapagos' | 'Pacific/Gambier' | 'Pacific/Guadalcanal' | 'Pacific/Guam' | 'Pacific/Honolulu' | 'Pacific/Johnston' | 'Pacific/Kanton' | 'Pacific/Kiritimati' | 'Pacific/Kosrae' | 'Pacific/Kwajalein' | 'Pacific/Majuro' | 'Pacific/Marquesas' | 'Pacific/Midway' | 'Pacific/Nauru' | 'Pacific/Niue' | 'Pacific/Norfolk' | 'Pacific/Noumea' | 'Pacific/Pago_Pago' | 'Pacific/Palau' | 'Pacific/Pitcairn' | 'Pacific/Pohnpei' | 'Pacific/Ponape' | 'Pacific/Port_Moresby' | 'Pacific/Rarotonga' | 'Pacific/Saipan' | 'Pacific/Samoa' | 'Pacific/Tahiti' | 'Pacific/Tarawa' | 'Pacific/Tongatapu' | 'Pacific/Truk' | 'Pacific/Wake' | 'Pacific/Wallis' | 'Pacific/Yap' | 'Poland' | 'Portugal' | 'ROC' | 'ROK' | 'Singapore' | 'Turkey' | 'UCT' | 'US/Alaska' | 'US/Aleutian' | 'US/Arizona' | 'US/Central' | 'US/East-Indiana' | 'US/Eastern' | 'US/Hawaii' | 'US/Indiana-Starke' | 'US/Michigan' | 'US/Mountain' | 'US/Pacific' | 'US/Samoa' | 'UTC' | 'Universal' | 'W-SU' | 'WET' | 'Zulu' | 'localtime' | ''; /** * How many consecutive missed or failed check-ins in a row before creating a new issue. */ failure_issue_threshold?: number | null; /** * How many successful check-ins in a row before resolving an issue. */ recovery_threshold?: number | null; }; /** * Uniquely identifies your monitor within your organization. Changing this slug will require updates to any instrumented check-in calls. */ slug?: string; /** * Status of the monitor. Disabled monitors will not accept events and will not count towards the monitor quota. * * * `active` * * `disabled` */ status?: 'active' | 'disabled'; /** * The ID of the team or user that owns the monitor. (eg. user:51 or team:6) */ owner?: string | null; /** * Disable creation of monitor incidents */ is_muted?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID or slug of the monitor. */ monitor_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/monitors/{monitor_id_or_slug}/'; }; export type UpdateProjectMonitorErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateProjectMonitorResponses = { 200: { alertRule?: { targets: Array<{ targetIdentifier: number; targetType: string; }>; environment: string; }; id: string; name: string; slug: string; status: string; isMuted: boolean; isUpserting: boolean; config: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; dateCreated: string; project: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }; environments: { name: string; status: string; isMuted: boolean; dateCreated: string; lastCheckIn: string; nextCheckIn: string; nextCheckInLatest: string; activeIncident: { startingTimestamp: string; resolvingTimestamp: string; brokenNotice: { userNotifiedTimestamp: string; environmentMutedTimestamp: string; } | null; } | null; }; owner: { type: 'user' | 'team'; id: string; name: string; email?: string; }; }; }; export type UpdateProjectMonitorResponse = UpdateProjectMonitorResponses[keyof UpdateProjectMonitorResponses]; export type ListProjectMonitorCheckinsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID or slug of the monitor. */ monitor_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/monitors/{monitor_id_or_slug}/checkins/'; }; export type ListProjectMonitorCheckinsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectMonitorCheckinsResponses = { 200: Array<{ groups?: Array; id: string; environment: string; status: string; duration: number | null; dateCreated: string; dateAdded: string; dateUpdated: string; dateInProgress: string | null; dateClock: string; expectedTime: string; monitorConfig: { schedule_type: 'crontab' | 'interval'; schedule: string | Array; checkin_margin: number | null; max_runtime: number | null; timezone: string | null; failure_issue_threshold: number | null; recovery_threshold: number | null; alert_rule_id: number | null; }; }>; }; export type ListProjectMonitorCheckinsResponse = ListProjectMonitorCheckinsResponses[keyof ListProjectMonitorCheckinsResponses]; export type GetProjectOwnershipData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/ownership/'; }; export type GetProjectOwnershipResponses = { 200: { schema?: { $version: number; rules: Array<{ matcher: { type: string; pattern: string; }; owners: Array<{ type: string; name: string; id?: string; }>; }>; } | null; raw: string; fallthrough: boolean; dateCreated: string; lastUpdated: string; isActive: boolean; autoAssignment: string; codeownersAutoSync: boolean; }; }; export type GetProjectOwnershipResponse = GetProjectOwnershipResponses[keyof GetProjectOwnershipResponses]; export type UpdateProjectOwnershipData = { body?: { /** * Raw input for ownership configuration. See the [Ownership Rules Documentation](/product/issues/ownership-rules/) to learn more. */ raw?: string; /** * A boolean determining who to assign ownership to when an ownership rule has no match. If set to `True`, all project members are made owners. Otherwise, no owners are set. */ fallthrough?: boolean; /** * Auto-assignment settings. The available options are: * - Auto Assign to Issue Owner * - Auto Assign to Suspect Commits * - Turn off Auto-Assignment */ autoAssignment?: string; /** * Set to `True` to sync issue owners with CODEOWNERS updates in a release. */ codeownersAutoSync?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/ownership/'; }; export type UpdateProjectOwnershipErrors = { /** * Bad Request */ 400: unknown; }; export type UpdateProjectOwnershipResponses = { 202: { schema?: { $version: number; rules: Array<{ matcher: { type: string; pattern: string; }; owners: Array<{ type: string; name: string; id?: string; }>; }>; } | null; raw: string; fallthrough: boolean; dateCreated: string; lastUpdated: string; isActive: boolean; autoAssignment: string; codeownersAutoSync: boolean; }; }; export type UpdateProjectOwnershipResponse = UpdateProjectOwnershipResponses[keyof UpdateProjectOwnershipResponses]; export type GetProjectPreprodSizeAnalysisStatusCheckRulesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/preprod/size-analysis/status-check-rules/'; }; export type GetProjectPreprodSizeAnalysisStatusCheckRulesErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectPreprodSizeAnalysisStatusCheckRulesResponses = { 200: { enabled: boolean; rules: Array<{ id: string; metric: 'install_size' | 'download_size'; measurement: 'absolute' | 'absolute_diff' | 'relative_diff'; value: string; filterQuery: string; filters: Array<{ key: 'app_id' | 'build_configuration_name' | 'git_head_ref' | 'platform_name'; conditions: Array<{ operator: 'contains' | 'endsWith' | 'equals' | 'in' | 'matches' | 'notContains' | 'notEndsWith' | 'notEquals' | 'notIn' | 'notMatches' | 'notStartsWith' | 'startsWith'; values: Array; }>; }> | null; artifactType: 'main_artifact' | 'watch_artifact' | 'android_dynamic_feature_artifact' | 'app_clip_artifact' | 'all_artifacts'; }>; }; }; export type GetProjectPreprodSizeAnalysisStatusCheckRulesResponse = GetProjectPreprodSizeAnalysisStatusCheckRulesResponses[keyof GetProjectPreprodSizeAnalysisStatusCheckRulesResponses]; export type CreateProjectPreprodSizeAnalysisSkippedStatusCheckData = { body: { /** * The full 40-character lowercase commit SHA. */ sha: string; /** * The repository name in `owner/name` format. */ repository: string; /** * The repository integration provider. * * * `github` * * `github_enterprise` */ provider: 'github' | 'github_enterprise'; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/preprod/size-analysis/status-checks/skip/'; }; export type CreateProjectPreprodSizeAnalysisSkippedStatusCheckErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; /** * Too Many Requests */ 429: unknown; /** * Bad Gateway */ 502: unknown; }; export type CreateProjectPreprodSizeAnalysisSkippedStatusCheckResponses = { /** * Success */ 200: unknown; }; export type GetProjectPreprodSnapshotStatusCheckRulesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/preprod/snapshots/status-check-rules/'; }; export type GetProjectPreprodSnapshotStatusCheckRulesErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectPreprodSnapshotStatusCheckRulesResponses = { 200: { enabled: boolean; rules: { failOnAdded: boolean; failOnRemoved: boolean; failOnChanged: boolean; failOnRenamed: boolean; }; }; }; export type GetProjectPreprodSnapshotStatusCheckRulesResponse = GetProjectPreprodSnapshotStatusCheckRulesResponses[keyof GetProjectPreprodSnapshotStatusCheckRulesResponses]; export type CreateProjectPreprodSnapshotSkippedStatusCheckData = { body: { /** * The full 40-character lowercase commit SHA. */ sha: string; /** * The repository name in `owner/name` format. */ repository: string; /** * The repository integration provider. * * * `github` * * `github_enterprise` */ provider: 'github' | 'github_enterprise'; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/preprod/snapshots/status-checks/skip/'; }; export type CreateProjectPreprodSnapshotSkippedStatusCheckErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; /** * Too Many Requests */ 429: unknown; /** * Bad Gateway */ 502: unknown; }; export type CreateProjectPreprodSnapshotSkippedStatusCheckResponses = { /** * Success */ 200: unknown; }; export type GetProjectInstallableBuildLatestData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query: { /** * App identifier (exact match). */ appId: string; /** * Platform: "apple" or "android". */ platform: string; /** * Current build version. When provided, enables check-for-updates mode. */ buildVersion?: string; /** * Current build number. Accepts a plain integer (e.g. 42) or a version string of two or more period-separated integers (e.g. 1.2.3), each up to 6 digits. Groups beyond the third are dropped. Either this or mainBinaryIdentifier must be provided when buildVersion is set. */ buildNumber?: number | string; /** * UUID of the main binary (e.g. Mach-O UUID for Apple builds). Either this or buildNumber must be provided when buildVersion is set. */ mainBinaryIdentifier?: string; /** * Filter by build configuration name (exact match). */ buildConfiguration?: string; /** * Filter by code signing type. */ codesigningType?: string; /** * Filter by install group name (repeatable for multiple groups). */ installGroups?: Array; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/preprodartifacts/build-distribution/latest/'; }; export type GetProjectInstallableBuildLatestErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type GetProjectInstallableBuildLatestResponses = { 200: { latestArtifact: { buildId: string; state: string; appInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; }; gitInfo: { headSha: string | null; baseSha: string | null; provider: string | null; headRepoName: string | null; baseRepoName: string | null; headRef: string | null; baseRef: string | null; prNumber: number | null; } | null; platform: string | null; projectId: string; projectSlug: string; buildConfiguration: string | null; isInstallable: boolean; installUrl: string | null; installUrlExpiresAt: string | null; downloadCount: number; releaseNotes: string | null; installGroups: Array | null; isCodeSignatureValid: boolean | null; profileName: string | null; codesigningType: string | null; } | null; currentArtifact: { buildId: string; state: string; appInfo: { appId: string | null; name: string | null; version: string | null; buildNumber: number | null; artifactType: string | null; dateAdded: string | null; dateBuilt: string | null; }; gitInfo: { headSha: string | null; baseSha: string | null; provider: string | null; headRepoName: string | null; baseRepoName: string | null; headRef: string | null; baseRef: string | null; prNumber: number | null; } | null; platform: string | null; projectId: string; projectSlug: string; buildConfiguration: string | null; isInstallable: boolean; installUrl: string | null; installUrlExpiresAt: string | null; downloadCount: number; releaseNotes: string | null; installGroups: Array | null; isCodeSignatureValid: boolean | null; profileName: string | null; codesigningType: string | null; } | null; }; }; export type GetProjectInstallableBuildLatestResponse = GetProjectInstallableBuildLatestResponses[keyof GetProjectInstallableBuildLatestResponses]; export type UploadProjectPreprodArtifactSnapshotData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/preprodartifacts/snapshots/'; }; export type UploadProjectPreprodArtifactSnapshotErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type UploadProjectPreprodArtifactSnapshotResponses = { 200: { artifactId: string; snapshotMetricsId: string; imageCount: number; snapshotUrl: string; }; }; export type UploadProjectPreprodArtifactSnapshotResponse = UploadProjectPreprodArtifactSnapshotResponses[keyof UploadProjectPreprodArtifactSnapshotResponses]; export type GetProjectProfilingProfileData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the profile. Either a numeric ID or a 32-character hexadecimal string. */ profile_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/profiling/profiles/{profile_id}/'; }; export type GetProjectProfilingProfileErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectProfilingProfileResponses = { 200: { [key: string]: unknown; }; }; export type GetProjectProfilingProfileResponse = GetProjectProfilingProfileResponses[keyof GetProjectProfilingProfileResponses]; export type ListProjectReleasesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; /** * Case-insensitive substring match against the release version. */ query?: string; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/releases/'; }; export type ListProjectReleasesErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectReleasesResponses = { 200: Array<{ ref?: string | null; url?: string | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; owner?: { [key: string]: unknown; } | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; firstEvent?: string | null; lastEvent?: string | null; currentProjectMeta?: { [key: string]: unknown; } | null; userAgent?: string | null; adoptionStages?: { [key: string]: unknown; } | null; id: number; version: string; newGroups: number; status: string; shortVersion: string; versionInfo: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; data: { [key: string]: unknown; }; commitCount: number; deployCount: number; authors: Array<{ identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }>; projects: Array<{ healthData?: { durationP50?: number | null; durationP90?: number | null; crashFreeUsers?: number | null; crashFreeSessions?: number | null; totalUsers?: number | null; totalUsers24h?: number | null; totalProjectUsers24h?: number | null; totalSessions?: number | null; totalSessions24h?: number | null; totalProjectSessions24h?: number | null; adoption?: number | null; sessionsAdoption?: number | null; sessionsCrashed: number; sessionsErrored: number; hasHealthData: boolean; stats: { [key: string]: unknown; }; } | null; dateReleased?: string | null; dateCreated?: string | null; dateStarted?: string | null; id: number; slug: string; name: string; platform: string | null; platforms: Array | null; hasHealthData: boolean; newGroups: number; }>; }>; }; export type ListProjectReleasesResponse2 = ListProjectReleasesResponses[keyof ListProjectReleasesResponses]; export type ListProjectReleaseCommitsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/releases/{version}/commits/'; }; export type ListProjectReleaseCommitsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectReleaseCommitsResponses = { 200: Array<{ id: string; message: string | null; dateCreated: string; pullRequest: { id: string; title: string | null; message: string | null; dateCreated: string; mergedAt: string | null; status: 'merged' | 'open' | 'closed' | 'draft' | 'unknown' | null; repository: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; }; externalUrl: string; } | null; suspectCommitType: string; repository?: { url?: string | null; provider?: { [key: string]: string; }; status?: string; integrationId?: string | null; externalSlug?: string | null; externalId?: string | null; settings?: { enabledCodeReview: boolean; codeReviewTriggers: Array; } | null; id: string; name: string; dateCreated: string; }; author?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; } | { name: string | null; email: string; } | { [key: string]: unknown; }; releases: Array<{ version: string; shortVersion: string; ref: string | null; url: string | null; dateReleased: string | null; dateCreated: string; }>; }>; }; export type ListProjectReleaseCommitsResponse2 = ListProjectReleaseCommitsResponses[keyof ListProjectReleaseCommitsResponses]; export type ListProjectReleaseFilesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: { /** * If set, only files with these partial names will be returned. */ query?: Array; /** * If set, only files with these exact checksums will be returned. */ checksum?: Array; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/releases/{version}/files/'; }; export type ListProjectReleaseFilesErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectReleaseFilesResponses = { 200: Array<{ id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }>; }; export type ListProjectReleaseFilesResponse = ListProjectReleaseFilesResponses[keyof ListProjectReleaseFilesResponses]; export type UploadProjectReleaseFileData = { /** * Documents the multipart/form-data body of the release file upload endpoints. * * The endpoints read the upload directly off ``request.data``; this serializer * exists to describe the request body in the OpenAPI schema. */ body: { /** * The multipart-encoded file contents to upload. */ file: string; /** * The name (full path) the file will be referenced as, e.g. the full web URI of a JavaScript file. Defaults to the uploaded file's name. */ name?: string; /** * The name of the distribution to associate the file with. */ dist?: string; /** * Headers to attach to the file, each formatted as a `"key:value"` string (for example, to define a content type). May be supplied multiple times. */ header?: Array; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The version identifier of the release */ version: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/releases/{version}/files/'; }; export type UploadProjectReleaseFileErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; /** * Conflict */ 409: unknown; }; export type UploadProjectReleaseFileResponses = { 201: { id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }; }; export type UploadProjectReleaseFileResponse = UploadProjectReleaseFileResponses[keyof UploadProjectReleaseFileResponses]; export type DeleteProjectReleaseFileData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The version identifier of the release */ version: string; /** * The ID of the release file. */ file_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/releases/{version}/files/{file_id}/'; }; export type DeleteProjectReleaseFileErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteProjectReleaseFileResponses = { /** * No Content */ 204: void; }; export type DeleteProjectReleaseFileResponse = DeleteProjectReleaseFileResponses[keyof DeleteProjectReleaseFileResponses]; export type GetProjectReleaseFileData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The version identifier of the release */ version: string; /** * The ID of the release file. */ file_id: string; }; query?: { /** * If set, download the file contents instead of returning metadata. */ download?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/releases/{version}/files/{file_id}/'; }; export type GetProjectReleaseFileErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectReleaseFileResponses = { 200: { id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }; }; export type GetProjectReleaseFileResponse = GetProjectReleaseFileResponses[keyof GetProjectReleaseFileResponses]; export type UpdateProjectReleaseFileData = { body: { /** * The new name (full path) of the file. */ name: string; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The version identifier of the release */ version: string; /** * The ID of the release file. */ file_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/releases/{version}/files/{file_id}/'; }; export type UpdateProjectReleaseFileErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateProjectReleaseFileResponses = { 200: { id: string; name: string; dist: string | null; headers: { [key: string]: unknown; }; size: number; sha1: string; dateCreated: string; }; }; export type UpdateProjectReleaseFileResponse = UpdateProjectReleaseFileResponses[keyof UpdateProjectReleaseFileResponses]; export type DeleteProjectReplayData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the replay you'd like to retrieve. It is a 32-character hexadecimal string. */ replay_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/replays/{replay_id}/'; }; export type DeleteProjectReplayErrors = { /** * Not Found */ 404: unknown; }; export type DeleteProjectReplayResponses = { /** * No Content */ 204: void; }; export type DeleteProjectReplayResponse = DeleteProjectReplayResponses[keyof DeleteProjectReplayResponses]; export type ListProjectReplayClicksData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the replay you'd like to retrieve. It is a 32-character hexadecimal string. */ replay_id: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * The name of environments to filter by. */ environment?: Array; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * Filters results by using [query syntax](/product/sentry-basics/search/). * * Example: `query=(transaction:foo AND release:abc) OR (transaction:[bar,baz] AND release:def)` * */ query?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/replays/{replay_id}/clicks/'; }; export type ListProjectReplayClicksErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectReplayClicksResponses = { 200: { data: Array<{ node_id: number; timestamp: string; }>; }; }; export type ListProjectReplayClicksResponse = ListProjectReplayClicksResponses[keyof ListProjectReplayClicksResponses]; export type ListProjectReplayRecordingSegmentsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the replay you'd like to retrieve. It is a 32-character hexadecimal string. */ replay_id: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/replays/{replay_id}/recording-segments/'; }; export type ListProjectReplayRecordingSegmentsErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectReplayRecordingSegmentsResponses = { 200: Array>; }; export type ListProjectReplayRecordingSegmentsResponse = ListProjectReplayRecordingSegmentsResponses[keyof ListProjectReplayRecordingSegmentsResponses]; export type GetProjectReplayRecordingSegmentData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the replay you'd like to retrieve. It is a 32-character hexadecimal string. */ replay_id: string; /** * The ID of the segment you'd like to retrieve. */ segment_id: number; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/replays/{replay_id}/recording-segments/{segment_id}/'; }; export type GetProjectReplayRecordingSegmentErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectReplayRecordingSegmentResponses = { 200: { data: { replayId: string; segmentId: number; projectId: string; dateAdded: string | null; }; }; }; export type GetProjectReplayRecordingSegmentResponse = GetProjectReplayRecordingSegmentResponses[keyof GetProjectReplayRecordingSegmentResponses]; export type ListProjectReplayViewedByData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the replay you'd like to retrieve. It is a 32-character hexadecimal string. */ replay_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/replays/{replay_id}/viewed-by/'; }; export type ListProjectReplayViewedByErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectReplayViewedByResponses = { 200: { data: { viewed_by: Array<{ [key: string]: unknown; }>; }; }; }; export type ListProjectReplayViewedByResponse = ListProjectReplayViewedByResponses[keyof ListProjectReplayViewedByResponses]; export type ListProjectReplayDeletionJobsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/replays/jobs/delete/'; }; export type ListProjectReplayDeletionJobsErrors = { /** * Forbidden */ 403: unknown; }; export type ListProjectReplayDeletionJobsResponses = { 200: { data: Array<{ id: number; dateCreated: string; dateUpdated: string; rangeStart: string; rangeEnd: string; environments: Array; status: string; query: string; countDeleted: number; }>; }; }; export type ListProjectReplayDeletionJobsResponse = ListProjectReplayDeletionJobsResponses[keyof ListProjectReplayDeletionJobsResponses]; export type CreateProjectReplayDeletionJobData = { body: { data: { rangeStart: string; rangeEnd: string; environments: Array; query: string | null; }; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/replays/jobs/delete/'; }; export type CreateProjectReplayDeletionJobErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type CreateProjectReplayDeletionJobResponses = { 201: { data: { id: number; dateCreated: string; dateUpdated: string; rangeStart: string; rangeEnd: string; environments: Array; status: string; query: string; countDeleted: number; }; }; }; export type CreateProjectReplayDeletionJobResponse = CreateProjectReplayDeletionJobResponses[keyof CreateProjectReplayDeletionJobResponses]; export type GetProjectReplayDeletionJobData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID of the replay deletion job you'd like to retrieve. */ job_id: number; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/replays/jobs/delete/{job_id}/'; }; export type GetProjectReplayDeletionJobErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetProjectReplayDeletionJobResponses = { 200: { data: { id: number; dateCreated: string; dateUpdated: string; rangeStart: string; rangeEnd: string; environments: Array; status: string; query: string; countDeleted: number; }; }; }; export type GetProjectReplayDeletionJobResponse = GetProjectReplayDeletionJobResponses[keyof GetProjectReplayDeletionJobResponses]; export type LinkProjectRepositoryData = { body: { /** * The ID of the repository to link. */ repositoryId: number; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/repo/'; }; export type LinkProjectRepositoryErrors = { /** * Bad Request */ 400: unknown; /** * Not Found */ 404: unknown; }; export type LinkProjectRepositoryResponses = { 201: { id: string; projectId: string; repositoryId: string; source: string; created: boolean; }; }; export type LinkProjectRepositoryResponse = LinkProjectRepositoryResponses[keyof LinkProjectRepositoryResponses]; export type ListProjectStatsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: { /** * The name of the stat to query. Defaults to `received`. */ stat?: 'blacklisted' | 'generated' | 'received' | 'rejected'; /** * A UNIX timestamp (in seconds) that sets the start of the query range. */ since?: number; /** * A UNIX timestamp (in seconds) that sets the end of the query range. */ until?: number; /** * An explicit time series resolution. */ resolution?: '10s' | '1d' | '1h'; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/stats/'; }; export type ListProjectStatsErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectStatsResponses = { 200: Array>; }; export type ListProjectStatsResponse = ListProjectStatsResponses[keyof ListProjectStatsResponses]; export type DeleteProjectSymbolSourceData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query: { /** * The ID of the source to delete. */ id: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/symbol-sources/'; }; export type DeleteProjectSymbolSourceErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteProjectSymbolSourceResponses = { /** * No Content */ 204: void; }; export type DeleteProjectSymbolSourceResponse = DeleteProjectSymbolSourceResponses[keyof DeleteProjectSymbolSourceResponses]; export type ListProjectSymbolSourcesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: { /** * The ID of the source to look up. If this is not provided, all sources are returned. */ id?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/symbol-sources/'; }; export type ListProjectSymbolSourcesErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectSymbolSourcesResponses = { 200: Array<{ type: 'http'; url: string; username?: string; password?: { 'hidden-secret'?: true; }; id: string; name?: string; layout: { type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; casing?: 'lowercase' | 'uppercase' | 'default'; }; filters?: { filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; path_patterns?: Array; requires_checksum?: boolean; }; is_public?: boolean; has_index?: boolean; platforms?: Array; } | { type: 's3'; bucket: string; region: string; access_key: string; secret_key: { 'hidden-secret'?: true; }; prefix?: string; id: string; name?: string; layout: { type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; casing?: 'lowercase' | 'uppercase' | 'default'; }; filters?: { filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; path_patterns?: Array; requires_checksum?: boolean; }; is_public?: boolean; has_index?: boolean; platforms?: Array; } | { type: 'gcs'; bucket: string; client_email: string; private_key: { 'hidden-secret'?: true; }; prefix?: string; id: string; name?: string; layout: { type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; casing?: 'lowercase' | 'uppercase' | 'default'; }; filters?: { filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; path_patterns?: Array; requires_checksum?: boolean; }; is_public?: boolean; has_index?: boolean; platforms?: Array; } | { type: 'appStoreConnect'; id: string; name: string; appconnectIssuer: string; appconnectKey: string; appconnectPrivateKey: string; appName: string; appId: string; bundleId: string; }>; }; export type ListProjectSymbolSourcesResponse = ListProjectSymbolSourcesResponses[keyof ListProjectSymbolSourcesResponses]; export type AddProjectSymbolSourceData = { body: { /** * The type of the source. * * * `http` - SymbolServer (HTTP) * * `gcs` - Google Cloud Storage * * `s3` - Amazon S3 */ type: 'http' | 'gcs' | 's3'; /** * The human-readable name of the source. */ name: string; /** * The internal ID of the source. Must be distinct from all other source IDs and cannot start with '`sentry:`'. If this is not provided, a new UUID will be generated. */ id?: string; /** * Layout settings for the source. This is required for HTTP, GCS, and S3 sources. * * **`type`** ***(string)*** - The layout of the folder structure. The options are: * - `native` - Platform-Specific (SymStore / GDB / LLVM) * - `symstore` - Microsoft SymStore * - `symstore_index2` - Microsoft SymStore (with index2.txt) * - `ssqp` - Microsoft SSQP * - `unified` - Unified Symbol Server Layout * - `debuginfod` - debuginfod * * **`casing`** ***(string)*** - The layout of the folder structure. The options are: * - `default` - Default (mixed case) * - `uppercase` - Uppercase * - `lowercase` - Lowercase * * ```json * { * "layout": { * "type": "native" * "casing": "default" * } * } * ``` */ layout?: { /** * The source's layout type. * * * `native` * * `symstore` * * `symstore_index2` * * `ssqp` * * `unified` * * `debuginfod` * * `slashsymbols` */ type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; /** * The source's casing rules. * * * `lowercase` * * `uppercase` * * `default` */ casing: 'lowercase' | 'uppercase' | 'default'; }; /** * Filter settings for the source. This is optional for all sources. * * **`filetypes`** ***(list)*** - A list of file types that can be found on this source. If this is left empty, all file types will be enabled. The options are: * - `pe` - Windows executable files * - `pdb` - Windows debug files * - `portablepdb` - .NET portable debug files * - `mach_code` - MacOS executable files * - `mach_debug` - MacOS debug files * - `elf_code` - ELF executable files * - `elf_debug` - ELF debug files * - `wasm_code` - WASM executable files * - `wasm_debug` - WASM debug files * - `breakpad` - Breakpad symbol files * - `sourcebundle` - Source code bundles * - `uuidmap` - Apple UUID mapping files * - `bcsymbolmap` - Apple bitcode symbol maps * - `il2cpp` - Unity IL2CPP mapping files * - `proguard` - ProGuard mapping files * * **`path_patterns`** ***(list)*** - A list of glob patterns to check against the debug and code file paths of debug files. Only files that match one of these patterns will be requested from the source. If this is left empty, no path-based filtering takes place. * * **`requires_checksum`** ***(boolean)*** - Whether this source requires a debug checksum to be sent with each request. Defaults to `false`. * * ```json * { * "filters": { * "filetypes": ["pe", "pdb", "portablepdb"], * "path_patterns": ["*ffmpeg*"] * } * } * ``` */ filters?: { /** * The file types enabled for the source. */ filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; /** * The debug and code file paths enabled for the source. */ path_patterns?: Array; /** * Whether the source requires debug checksums. */ requires_checksum?: boolean; }; /** * The source's URL. Optional for HTTP sources, invalid for all others. */ url?: string; /** * The user name for accessing the source. Optional for HTTP sources, invalid for all others. */ username?: string; /** * The password for accessing the source. Optional for HTTP sources, invalid for all others. */ password?: string; /** * The GCS or S3 bucket where the source resides. Required for GCS and S3 source, invalid for HTTP sources. */ bucket?: string; /** * The source's [S3 region](https://docs.aws.amazon.com/general/latest/gr/s3.html). Required for S3 sources, invalid for all others. * * * `us-east-2` - US East (Ohio) * * `us-east-1` - US East (N. Virginia) * * `us-west-1` - US West (N. California) * * `us-west-2` - US West (Oregon) * * `ap-east-1` - Asia Pacific (Hong Kong) * * `ap-south-1` - Asia Pacific (Mumbai) * * `ap-northeast-2` - Asia Pacific (Seoul) * * `ap-southeast-1` - Asia Pacific (Singapore) * * `ap-southeast-2` - Asia Pacific (Sydney) * * `ap-northeast-1` - Asia Pacific (Tokyo) * * `ca-central-1` - Canada (Central) * * `cn-north-1` - China (Beijing) * * `cn-northwest-1` - China (Ningxia) * * `eu-central-1` - EU (Frankfurt) * * `eu-west-1` - EU (Ireland) * * `eu-west-2` - EU (London) * * `eu-west-3` - EU (Paris) * * `eu-north-1` - EU (Stockholm) * * `sa-east-1` - South America (São Paulo) * * `us-gov-east-1` - AWS GovCloud (US-East) * * `us-gov-west-1` - AWS GovCloud (US) */ region?: 'us-east-2' | 'us-east-1' | 'us-west-1' | 'us-west-2' | 'ap-east-1' | 'ap-south-1' | 'ap-northeast-2' | 'ap-southeast-1' | 'ap-southeast-2' | 'ap-northeast-1' | 'ca-central-1' | 'cn-north-1' | 'cn-northwest-1' | 'eu-central-1' | 'eu-west-1' | 'eu-west-2' | 'eu-west-3' | 'eu-north-1' | 'sa-east-1' | 'us-gov-east-1' | 'us-gov-west-1'; /** * The [AWS Access Key](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys).Required for S3 sources, invalid for all others. */ access_key?: string; /** * The [AWS Secret Access Key](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys).Required for S3 sources, invalid for all others. */ secret_key?: string; /** * The GCS or [S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) prefix. Optional for GCS and S3 sourcse, invalid for HTTP. */ prefix?: string; /** * The GCS email address for authentication. Required for GCS sources, invalid for all others. */ client_email?: string; /** * The GCS private key. Required for GCS sources if not using impersonated tokens. Invalid for all others. */ private_key?: string; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/symbol-sources/'; }; export type AddProjectSymbolSourceErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type AddProjectSymbolSourceResponses = { 201: { type: 'http'; url: string; username?: string; password?: { 'hidden-secret'?: true; }; id: string; name?: string; layout: { type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; casing?: 'lowercase' | 'uppercase' | 'default'; }; filters?: { filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; path_patterns?: Array; requires_checksum?: boolean; }; is_public?: boolean; has_index?: boolean; platforms?: Array; } | { type: 's3'; bucket: string; region: string; access_key: string; secret_key: { 'hidden-secret'?: true; }; prefix?: string; id: string; name?: string; layout: { type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; casing?: 'lowercase' | 'uppercase' | 'default'; }; filters?: { filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; path_patterns?: Array; requires_checksum?: boolean; }; is_public?: boolean; has_index?: boolean; platforms?: Array; } | { type: 'gcs'; bucket: string; client_email: string; private_key: { 'hidden-secret'?: true; }; prefix?: string; id: string; name?: string; layout: { type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; casing?: 'lowercase' | 'uppercase' | 'default'; }; filters?: { filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; path_patterns?: Array; requires_checksum?: boolean; }; is_public?: boolean; has_index?: boolean; platforms?: Array; } | { type: 'appStoreConnect'; id: string; name: string; appconnectIssuer: string; appconnectKey: string; appconnectPrivateKey: string; appName: string; appId: string; bundleId: string; }; }; export type AddProjectSymbolSourceResponse = AddProjectSymbolSourceResponses[keyof AddProjectSymbolSourceResponses]; export type UpdateProjectSymbolSourceData = { body: { /** * The type of the source. * * * `http` - SymbolServer (HTTP) * * `gcs` - Google Cloud Storage * * `s3` - Amazon S3 */ type: 'http' | 'gcs' | 's3'; /** * The human-readable name of the source. */ name: string; /** * The internal ID of the source. Must be distinct from all other source IDs and cannot start with '`sentry:`'. If this is not provided, a new UUID will be generated. */ id?: string; /** * Layout settings for the source. This is required for HTTP, GCS, and S3 sources. * * **`type`** ***(string)*** - The layout of the folder structure. The options are: * - `native` - Platform-Specific (SymStore / GDB / LLVM) * - `symstore` - Microsoft SymStore * - `symstore_index2` - Microsoft SymStore (with index2.txt) * - `ssqp` - Microsoft SSQP * - `unified` - Unified Symbol Server Layout * - `debuginfod` - debuginfod * * **`casing`** ***(string)*** - The layout of the folder structure. The options are: * - `default` - Default (mixed case) * - `uppercase` - Uppercase * - `lowercase` - Lowercase * * ```json * { * "layout": { * "type": "native" * "casing": "default" * } * } * ``` */ layout?: { /** * The source's layout type. * * * `native` * * `symstore` * * `symstore_index2` * * `ssqp` * * `unified` * * `debuginfod` * * `slashsymbols` */ type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; /** * The source's casing rules. * * * `lowercase` * * `uppercase` * * `default` */ casing: 'lowercase' | 'uppercase' | 'default'; }; /** * Filter settings for the source. This is optional for all sources. * * **`filetypes`** ***(list)*** - A list of file types that can be found on this source. If this is left empty, all file types will be enabled. The options are: * - `pe` - Windows executable files * - `pdb` - Windows debug files * - `portablepdb` - .NET portable debug files * - `mach_code` - MacOS executable files * - `mach_debug` - MacOS debug files * - `elf_code` - ELF executable files * - `elf_debug` - ELF debug files * - `wasm_code` - WASM executable files * - `wasm_debug` - WASM debug files * - `breakpad` - Breakpad symbol files * - `sourcebundle` - Source code bundles * - `uuidmap` - Apple UUID mapping files * - `bcsymbolmap` - Apple bitcode symbol maps * - `il2cpp` - Unity IL2CPP mapping files * - `proguard` - ProGuard mapping files * * **`path_patterns`** ***(list)*** - A list of glob patterns to check against the debug and code file paths of debug files. Only files that match one of these patterns will be requested from the source. If this is left empty, no path-based filtering takes place. * * **`requires_checksum`** ***(boolean)*** - Whether this source requires a debug checksum to be sent with each request. Defaults to `false`. * * ```json * { * "filters": { * "filetypes": ["pe", "pdb", "portablepdb"], * "path_patterns": ["*ffmpeg*"] * } * } * ``` */ filters?: { /** * The file types enabled for the source. */ filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; /** * The debug and code file paths enabled for the source. */ path_patterns?: Array; /** * Whether the source requires debug checksums. */ requires_checksum?: boolean; }; /** * The source's URL. Optional for HTTP sources, invalid for all others. */ url?: string; /** * The user name for accessing the source. Optional for HTTP sources, invalid for all others. */ username?: string; /** * The password for accessing the source. Optional for HTTP sources, invalid for all others. */ password?: string; /** * The GCS or S3 bucket where the source resides. Required for GCS and S3 source, invalid for HTTP sources. */ bucket?: string; /** * The source's [S3 region](https://docs.aws.amazon.com/general/latest/gr/s3.html). Required for S3 sources, invalid for all others. * * * `us-east-2` - US East (Ohio) * * `us-east-1` - US East (N. Virginia) * * `us-west-1` - US West (N. California) * * `us-west-2` - US West (Oregon) * * `ap-east-1` - Asia Pacific (Hong Kong) * * `ap-south-1` - Asia Pacific (Mumbai) * * `ap-northeast-2` - Asia Pacific (Seoul) * * `ap-southeast-1` - Asia Pacific (Singapore) * * `ap-southeast-2` - Asia Pacific (Sydney) * * `ap-northeast-1` - Asia Pacific (Tokyo) * * `ca-central-1` - Canada (Central) * * `cn-north-1` - China (Beijing) * * `cn-northwest-1` - China (Ningxia) * * `eu-central-1` - EU (Frankfurt) * * `eu-west-1` - EU (Ireland) * * `eu-west-2` - EU (London) * * `eu-west-3` - EU (Paris) * * `eu-north-1` - EU (Stockholm) * * `sa-east-1` - South America (São Paulo) * * `us-gov-east-1` - AWS GovCloud (US-East) * * `us-gov-west-1` - AWS GovCloud (US) */ region?: 'us-east-2' | 'us-east-1' | 'us-west-1' | 'us-west-2' | 'ap-east-1' | 'ap-south-1' | 'ap-northeast-2' | 'ap-southeast-1' | 'ap-southeast-2' | 'ap-northeast-1' | 'ca-central-1' | 'cn-north-1' | 'cn-northwest-1' | 'eu-central-1' | 'eu-west-1' | 'eu-west-2' | 'eu-west-3' | 'eu-north-1' | 'sa-east-1' | 'us-gov-east-1' | 'us-gov-west-1'; /** * The [AWS Access Key](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys).Required for S3 sources, invalid for all others. */ access_key?: string; /** * The [AWS Secret Access Key](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html#access-keys-and-secret-access-keys).Required for S3 sources, invalid for all others. */ secret_key?: string; /** * The GCS or [S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) prefix. Optional for GCS and S3 sourcse, invalid for HTTP. */ prefix?: string; /** * The GCS email address for authentication. Required for GCS sources, invalid for all others. */ client_email?: string; /** * The GCS private key. Required for GCS sources if not using impersonated tokens. Invalid for all others. */ private_key?: string; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query: { /** * The ID of the source to update. */ id: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/symbol-sources/'; }; export type UpdateProjectSymbolSourceErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateProjectSymbolSourceResponses = { 200: { type: 'http'; url: string; username?: string; password?: { 'hidden-secret'?: true; }; id: string; name?: string; layout: { type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; casing?: 'lowercase' | 'uppercase' | 'default'; }; filters?: { filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; path_patterns?: Array; requires_checksum?: boolean; }; is_public?: boolean; has_index?: boolean; platforms?: Array; } | { type: 's3'; bucket: string; region: string; access_key: string; secret_key: { 'hidden-secret'?: true; }; prefix?: string; id: string; name?: string; layout: { type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; casing?: 'lowercase' | 'uppercase' | 'default'; }; filters?: { filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; path_patterns?: Array; requires_checksum?: boolean; }; is_public?: boolean; has_index?: boolean; platforms?: Array; } | { type: 'gcs'; bucket: string; client_email: string; private_key: { 'hidden-secret'?: true; }; prefix?: string; id: string; name?: string; layout: { type: 'native' | 'symstore' | 'symstore_index2' | 'ssqp' | 'unified' | 'debuginfod' | 'slashsymbols'; casing?: 'lowercase' | 'uppercase' | 'default'; }; filters?: { filetypes?: Array<'pe' | 'pdb' | 'portablepdb' | 'mach_debug' | 'mach_code' | 'elf_debug' | 'elf_code' | 'wasm_debug' | 'wasm_code' | 'breakpad' | 'sourcebundle' | 'uuidmap' | 'bcsymbolmap' | 'il2cpp' | 'proguard' | 'dartsymbolmap'>; path_patterns?: Array; requires_checksum?: boolean; }; is_public?: boolean; has_index?: boolean; platforms?: Array; } | { type: 'appStoreConnect'; id: string; name: string; appconnectIssuer: string; appconnectKey: string; appconnectPrivateKey: string; appName: string; appId: string; bundleId: string; }; }; export type UpdateProjectSymbolSourceResponse = UpdateProjectSymbolSourceResponses[keyof UpdateProjectSymbolSourceResponses]; export type ListProjectTeamsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/teams/'; }; export type ListProjectTeamsErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectTeamsResponses = { 200: Array<{ id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; }>; }; export type ListProjectTeamsResponse = ListProjectTeamsResponses[keyof ListProjectTeamsResponses]; export type DeleteProjectTeamData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/teams/{team_id_or_slug}/'; }; export type DeleteProjectTeamErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteProjectTeamResponses = { 200: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; team?: { id: string; name: string; slug: string; }; teams: Array<{ id: string; name: string; slug: string; }>; }; }; export type DeleteProjectTeamResponse = DeleteProjectTeamResponses[keyof DeleteProjectTeamResponses]; export type AddProjectTeamData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/teams/{team_id_or_slug}/'; }; export type AddProjectTeamErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type AddProjectTeamResponses = { 201: { stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; team?: { id: string; name: string; slug: string; }; teams: Array<{ id: string; name: string; slug: string; }>; }; }; export type AddProjectTeamResponse = AddProjectTeamResponses[keyof AddProjectTeamResponses]; export type ListProjectUsersData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the project the resource belongs to. Project slugs are unique within each organization. */ project_id_or_slug: string; }; query?: { /** * Limit results to users matching the given query. Prefixes should be used to suggest the field to match on: `id`, `email`, `username`, `ip`. For example, `query=email:foo@example.com`. */ query?: string; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/users/'; }; export type ListProjectUsersErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectUsersResponses = { 200: Array<{ id: string | null; tagValue: string; identifier: string; username: string; email: string; name: string; ipAddress: string; avatarUrl: string; hash: string; dateCreated: string | null; }>; }; export type ListProjectUsersResponse2 = ListProjectUsersResponses[keyof ListProjectUsersResponses]; export type ListSeerModelsData = { body?: never; path?: never; query?: never; url: '/api/0/seer/models/'; }; export type ListSeerModelsResponses = { /** * Response containing list of actively used LLM model names from Seer. */ 200: { models: Array; }; }; export type ListSeerModelsResponse = ListSeerModelsResponses[keyof ListSeerModelsResponses]; export type DeleteSentryAppData = { body?: never; path: { /** * The ID or slug of the custom integration. */ sentry_app_id_or_slug: string; }; query?: never; url: '/api/0/sentry-apps/{sentry_app_id_or_slug}/'; }; export type DeleteSentryAppErrors = { /** * Forbidden */ 403: unknown; }; export type DeleteSentryAppResponses = { /** * No Content */ 204: void; }; export type DeleteSentryAppResponse = DeleteSentryAppResponses[keyof DeleteSentryAppResponses]; export type GetSentryAppData = { body?: never; path: { /** * The ID or slug of the custom integration. */ sentry_app_id_or_slug: string; }; query?: never; url: '/api/0/sentry-apps/{sentry_app_id_or_slug}/'; }; export type GetSentryAppResponses = { 200: { allowedOrigins: Array; avatars: Array<{ avatarType: string; avatarUuid: string; avatarUrl: string; color: boolean; photoType: string; }>; events: Array; webhookEvents: Array; featureData: Array; isAlertable: boolean; metadata: string; name: string; schema: string; scopes: Array; slug: string; status: string; uuid: string; verifyInstall: boolean; webhookHeaders: Array; isDisabled?: boolean; author?: string | null; overview?: string | null; popularity?: number | null; redirectUrl?: string | null; webhookUrl?: string | null; clientSecret?: string | null; datePublished?: string; clientId?: string; owner?: { id: number; slug: string; }; }; }; export type GetSentryAppResponse = GetSentryAppResponses[keyof GetSentryAppResponses]; export type UpdateSentryAppData = { body: { /** * The name of the custom integration. */ name: string; /** * The custom integration's permission scopes for API access. */ scopes: Array | null; /** * The custom integration's author. */ author?: string | null; /** * Webhook events the custom integration is subscribed to. */ events?: Array | null; /** * The UI components schema, used to render the custom integration's configuration UI elements. See our [schema docs](https://docs.sentry.io/organization/integrations/integration-platform/ui-components/) for more information. */ schema?: { [key: string]: unknown; } | null; /** * The webhook destination URL. */ webhookUrl?: string | null; /** * The post-installation redirect URL. */ redirectUrl?: string | null; /** * Whether or not the integration is internal only. False means the integration is public. */ isInternal?: boolean; /** * Marks whether or not the custom integration can be used in an alert rule. */ isAlertable?: boolean; /** * The custom integration's description. */ overview?: string | null; /** * Whether or not an installation of the custom integration should be verified. */ verifyInstall?: boolean; /** * The list of allowed origins for CORS. */ allowedOrigins?: Array; /** * Custom headers sent with every webhook request. Each entry is a single 'Header-Name: value' pair. */ webhookHeaders?: Array; }; path: { /** * The ID or slug of the custom integration. */ sentry_app_id_or_slug: string; }; query?: never; url: '/api/0/sentry-apps/{sentry_app_id_or_slug}/'; }; export type UpdateSentryAppErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type UpdateSentryAppResponses = { 200: { allowedOrigins: Array; avatars: Array<{ avatarType: string; avatarUuid: string; avatarUrl: string; color: boolean; photoType: string; }>; events: Array; webhookEvents: Array; featureData: Array; isAlertable: boolean; metadata: string; name: string; schema: string; scopes: Array; slug: string; status: string; uuid: string; verifyInstall: boolean; webhookHeaders: Array; isDisabled?: boolean; author?: string | null; overview?: string | null; popularity?: number | null; redirectUrl?: string | null; webhookUrl?: string | null; clientSecret?: string | null; datePublished?: string; clientId?: string; owner?: { id: number; slug: string; }; }; }; export type UpdateSentryAppResponse = UpdateSentryAppResponses[keyof UpdateSentryAppResponses]; export type DeleteTeamData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/teams/{organization_id_or_slug}/{team_id_or_slug}/'; }; export type DeleteTeamErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteTeamResponses = { /** * No Content */ 204: void; }; export type DeleteTeamResponse = DeleteTeamResponses[keyof DeleteTeamResponses]; export type GetTeamData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: { /** * * List of strings to opt in to additional data. Supports `projects`, `externalTeams`. * */ expand?: string; /** * * List of strings to opt out of certain pieces of data. Supports `organization`. * */ collapse?: string; }; url: '/api/0/teams/{organization_id_or_slug}/{team_id_or_slug}/'; }; export type GetTeamErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetTeamResponses = { 200: { id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; externalTeams?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; organization?: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; projects?: Array<{ stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }>; }; }; export type GetTeamResponse = GetTeamResponses[keyof GetTeamResponses]; export type UpdateTeamData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * Uniquely identifies a team. This is must be available. */ slug: string; /** * The name of the team. */ name?: string; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/teams/{organization_id_or_slug}/{team_id_or_slug}/'; }; export type UpdateTeamErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateTeamResponses = { 200: { id: string; slug: string; name: string; dateCreated: string | null; isMember: boolean; teamRole: string | null; flags: { [key: string]: unknown; }; access: Array; hasAccess: boolean; isPending: boolean; memberCount: number; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; externalTeams?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; organization?: { features?: Array; extraOptions?: { [key: string]: { [key: string]: unknown; }; }; access?: Array; onboardingTasks?: Array<{ task: string | null; status: string; completionSeen: string | null; dateCompleted: string; data: unknown; }>; id: string; slug: string; status: { id: string; name: string; }; name: string; dateCreated: string; isEarlyAdopter: boolean; require2FA: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; links: { organizationUrl: string; regionUrl: string; }; hasAuthProvider: boolean; allowMemberInvite: boolean; allowMemberProjectCreation: boolean; allowSuperuserAccess: boolean; }; projects?: Array<{ stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; isInternal: boolean; isPublic: boolean; avatar: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; color: string; status: string; }>; }; }; export type UpdateTeamResponse = UpdateTeamResponses[keyof UpdateTeamResponses]; export type CreateTeamExternalTeamData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The associated name for the provider. */ external_name: string; /** * The provider of the external actor. * * * `github` * * `github_enterprise` * * `jira_server` * * `slack` * * `slack_staging` * * `perforce` * * `gitlab` * * `msteams` * * `custom_scm` */ provider: 'github' | 'github_enterprise' | 'jira_server' | 'slack' | 'slack_staging' | 'perforce' | 'gitlab' | 'msteams' | 'custom_scm'; /** * The Integration ID. */ integration_id: number; /** * The associated user ID for provider. */ external_id?: string | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/teams/{organization_id_or_slug}/{team_id_or_slug}/external-teams/'; }; export type CreateTeamExternalTeamErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type CreateTeamExternalTeamResponses = { 200: { externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }; 201: { externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }; }; export type CreateTeamExternalTeamResponse = CreateTeamExternalTeamResponses[keyof CreateTeamExternalTeamResponses]; export type DeleteTeamExternalTeamData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; /** * The ID of the external team object. This is returned when creating an external team. */ external_team_id: number; }; query?: never; url: '/api/0/teams/{organization_id_or_slug}/{team_id_or_slug}/external-teams/{external_team_id}/'; }; export type DeleteTeamExternalTeamErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type DeleteTeamExternalTeamResponses = { /** * No Content */ 204: void; }; export type DeleteTeamExternalTeamResponse = DeleteTeamExternalTeamResponses[keyof DeleteTeamExternalTeamResponses]; export type UpdateTeamExternalTeamData = { /** * Allows parameters to be defined in snake case, but passed as camel case. * * Errors are output in camel case. */ body: { /** * The associated name for the provider. */ external_name: string; /** * The provider of the external actor. * * * `github` * * `github_enterprise` * * `jira_server` * * `slack` * * `slack_staging` * * `perforce` * * `gitlab` * * `msteams` * * `custom_scm` */ provider: 'github' | 'github_enterprise' | 'jira_server' | 'slack' | 'slack_staging' | 'perforce' | 'gitlab' | 'msteams' | 'custom_scm'; /** * The Integration ID. */ integration_id: number; /** * The associated user ID for provider. */ external_id?: string | null; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; /** * The ID of the external team object. This is returned when creating an external team. */ external_team_id: number; }; query?: never; url: '/api/0/teams/{organization_id_or_slug}/{team_id_or_slug}/external-teams/{external_team_id}/'; }; export type UpdateTeamExternalTeamErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type UpdateTeamExternalTeamResponses = { 200: { externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }; }; export type UpdateTeamExternalTeamResponse = UpdateTeamExternalTeamResponses[keyof UpdateTeamExternalTeamResponses]; export type ListTeamMembersData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/teams/{organization_id_or_slug}/{team_id_or_slug}/members/'; }; export type ListTeamMembersErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListTeamMembersResponses = { 200: Array<{ externalUsers?: Array<{ externalId?: string; userId?: string; teamId?: string; id: string; provider: string; externalName: string; integrationId: string; }>; role?: string; roleName?: string; id: string; email: string; name: string; user: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; orgRole: string; pending: boolean; expired: boolean; flags: { 'idp:provisioned': boolean; 'idp:role-restricted': boolean; 'sso:linked': boolean; 'sso:invalid': boolean; 'member-limit:restricted': boolean; 'partnership:restricted': boolean; }; dateCreated: string; inviteStatus: string; inviterName: string | null; teamRole: string | null; teamSlug: string; }>; }; export type ListTeamMembersResponse = ListTeamMembersResponses[keyof ListTeamMembersResponses]; export type ListTeamProjectsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/teams/{organization_id_or_slug}/{team_id_or_slug}/projects/'; }; export type ListTeamProjectsErrors = { /** * Forbidden */ 403: unknown; /** * Team not found. */ 404: unknown; }; export type ListTeamProjectsResponses = { 200: Array<{ latestDeploys?: { [key: string]: { [key: string]: string; }; } | null; options?: { [key: string]: unknown; }; stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; team: { id: string; name: string; slug: string; } | null; teams: Array<{ id: string; name: string; slug: string; }>; platforms: Array; hasUserReports: boolean; environments: Array; latestRelease: { version: string; } | null; }>; }; export type ListTeamProjectsResponse = ListTeamProjectsResponses[keyof ListTeamProjectsResponses]; export type CreateTeamProjectData = { body: { /** * The name for the project. */ name: string; /** * Uniquely identifies a project and is used for the interface. * If not provided, it is automatically generated from the name. */ slug?: string | null; /** * The platform for the project. */ platform?: string | null; /** * * Defaults to true where the behavior is to alert the user on every new * issue. Setting this to false will turn this off and the user must create * their own alerts to be notified of new issues. * */ default_rules?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID or slug of the team the resource belongs to. */ team_id_or_slug: string; }; query?: never; url: '/api/0/teams/{organization_id_or_slug}/{team_id_or_slug}/projects/'; }; export type CreateTeamProjectErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Team not found. */ 404: unknown; /** * A project with this slug already exists. */ 409: unknown; }; export type CreateTeamProjectResponses = { 201: { latestDeploys?: { [key: string]: { [key: string]: string; }; } | null; options?: { [key: string]: unknown; }; stats?: unknown; transactionStats?: unknown; sessionStats?: unknown; id: string; slug: string; name: string; platform: string | null; dateCreated: string; isBookmarked: boolean; isMember: boolean; features: Array; firstEvent: string | null; firstTransactionEvent: boolean; access: Array; hasAccess: boolean; hasFeedbacks: boolean; hasFlags: boolean; hasMinifiedStackTrace: boolean; hasMonitors: boolean; hasNewFeedbacks: boolean; hasProfiles: boolean; hasReplays: boolean; hasSessions: boolean; hasInsightsHttp: boolean; hasInsightsDb: boolean; hasInsightsAssets: boolean; hasInsightsAppStart: boolean; hasInsightsScreenLoad: boolean; hasInsightsVitals: boolean; hasInsightsCaches: boolean; hasInsightsQueues: boolean; hasInsightsAgentMonitoring: boolean; hasInsightsMCP: boolean; hasLogs: boolean; hasTraceMetrics: boolean; team: { id: string; name: string; slug: string; } | null; teams: Array<{ id: string; name: string; slug: string; }>; platforms: Array; hasUserReports: boolean; environments: Array; latestRelease: { version: string; } | null; }; }; export type CreateTeamProjectResponse = CreateTeamProjectResponses[keyof CreateTeamProjectResponses]; export type ListProjectTagValuesData = { body?: never; path: { /** * The ID or slug of the organization. */ organization_id_or_slug: string; /** * The ID or slug of the project. */ project_id_or_slug: string; /** * The tag key to look up. */ key: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/tags/{key}/values/'; }; export type ListProjectTagValuesErrors = { /** * Forbidden */ 403: unknown; }; export type ListProjectTagValuesResponses = { /** * Success */ 200: Array<{ name: string; }>; }; export type ListProjectTagValuesResponse = ListProjectTagValuesResponses[keyof ListProjectTagValuesResponses]; export type ListProjectUserFeedbackData = { body?: never; path: { /** * The ID or slug of the organization. */ organization_id_or_slug: string; /** * The ID or slug of the project. */ project_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/user-feedback/'; }; export type ListProjectUserFeedbackErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListProjectUserFeedbackResponses = { /** * Success */ 200: Array<{ comments: string; dateCreated: string; email: string; event: { eventID?: string; id?: string | null; }; eventID: string; id: string; issue: { [key: string]: unknown; } | null; name: string; user: { [key: string]: unknown; } | null; }>; }; export type ListProjectUserFeedbackResponse = ListProjectUserFeedbackResponses[keyof ListProjectUserFeedbackResponses]; export type CreateProjectUserFeedbackData = { body?: { /** * The event ID. This can be retrieved from the [beforeSend callback](https://docs.sentry.io/platforms/javascript/configuration/filtering/#using-beforesend). */ event_id: string; /** * User's name. */ name: string; /** * User's email address. */ email: string; /** * Comments supplied by user. */ comments: string; }; path: { /** * The ID or slug of the organization. */ organization_id_or_slug: string; /** * The ID or slug of the project. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/user-feedback/'; }; export type CreateProjectUserFeedbackErrors = { /** * Bad Input */ 400: unknown; /** * Forbidden */ 403: unknown; /** * The requested resource does not exist */ 404: unknown; /** * Conflict */ 409: unknown; }; export type CreateProjectUserFeedbackResponses = { /** * Success */ 200: { comments: string; dateCreated: string; email: string; event: { eventID?: string; id?: string | null; }; eventID: string; id: string; issue: { [key: string]: unknown; } | null; name: string; user: { [key: string]: unknown; } | null; }; }; export type CreateProjectUserFeedbackResponse = CreateProjectUserFeedbackResponses[keyof CreateProjectUserFeedbackResponses]; export type ListProjectHooksData = { body?: never; path: { /** * The ID or slug of the organization the client keys belong to. */ organization_id_or_slug: string; /** * The ID or slug of the project the client keys belong to. */ project_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/hooks/'; }; export type ListProjectHooksErrors = { /** * You do not have that feature enabled */ 403: unknown; }; export type ListProjectHooksResponses = { /** * Success */ 200: Array<{ dateCreated: string; events: Array; id: string; secret: string; status: string; url: string; }>; }; export type ListProjectHooksResponse = ListProjectHooksResponses[keyof ListProjectHooksResponses]; export type CreateProjectHookData = { body: { /** * The URL for the webhook. */ url: string; /** * The events to subscribe to. */ events: Array; }; path: { /** * The ID or slug of the organization the client keys belong to. */ organization_id_or_slug: string; /** * The ID or slug of the project the client keys belong to. */ project_id_or_slug: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/hooks/'; }; export type CreateProjectHookErrors = { /** * You do not have that feature enabled */ 403: unknown; /** * The requested resource does not exist */ 404: unknown; }; export type CreateProjectHookResponses = { /** * Success */ 201: { dateCreated: string; events: Array; id: string; secret: string; status: string; url: string; }; }; export type CreateProjectHookResponse = CreateProjectHookResponses[keyof CreateProjectHookResponses]; export type DeleteProjectHookData = { body?: never; path: { /** * The ID or slug of the organization the client keys belong to. */ organization_id_or_slug: string; /** * The ID or slug of the project the client keys belong to. */ project_id_or_slug: string; /** * The GUID of the service hook. */ hook_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/hooks/{hook_id}/'; }; export type DeleteProjectHookErrors = { /** * Forbidden */ 403: unknown; /** * The requested resource does not exist */ 404: unknown; }; export type DeleteProjectHookResponses = { /** * Success */ 204: void; }; export type DeleteProjectHookResponse = DeleteProjectHookResponses[keyof DeleteProjectHookResponses]; export type GetProjectHookData = { body?: never; path: { /** * The ID or slug of the organization the client keys belong to. */ organization_id_or_slug: string; /** * The ID or slug of the project the client keys belong to. */ project_id_or_slug: string; /** * The GUID of the service hook. */ hook_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/hooks/{hook_id}/'; }; export type GetProjectHookErrors = { /** * Forbidden */ 403: unknown; /** * The requested resource does not exist */ 404: unknown; }; export type GetProjectHookResponses = { /** * Success */ 200: { dateCreated: string; events: Array; id: string; secret: string; status: string; url: string; }; }; export type GetProjectHookResponse = GetProjectHookResponses[keyof GetProjectHookResponses]; export type UpdateProjectHookData = { body?: { /** * The URL for the webhook. */ url: string; /** * The events to subscribe to. */ events: Array; }; path: { /** * The ID or slug of the organization the client keys belong to. */ organization_id_or_slug: string; /** * The ID or slug of the project the client keys belong to. */ project_id_or_slug: string; /** * The GUID of the service hook. */ hook_id: string; }; query?: never; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/hooks/{hook_id}/'; }; export type UpdateProjectHookErrors = { /** * Bad Input */ 400: unknown; /** * Forbidden */ 403: unknown; /** * The requested resource does not exist */ 404: unknown; }; export type UpdateProjectHookResponses = { /** * Success */ 200: { dateCreated: string; events: Array; id: string; secret: string; status: string; url: string; }; }; export type UpdateProjectHookResponse = UpdateProjectHookResponses[keyof UpdateProjectHookResponses]; export type DeleteProjectIssuesData = { body?: never; path: { /** * The ID or slug of the organization the issues belong to. */ organization_id_or_slug: string; /** * The ID or slug of the project the issues belong to. */ project_id_or_slug: string; }; query?: { /** * A list of IDs of the issues to be removed. This parameter shall be repeated for each issue, e.g. `?id=1&id=2&id=3`. If this parameter is not provided, it will attempt to remove the first 1000 issues. */ id?: number; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/issues/'; }; export type DeleteProjectIssuesErrors = { /** * Forbidden */ 403: unknown; /** * Project not found */ 404: unknown; }; export type DeleteProjectIssuesResponses = { /** * Success */ 204: void; }; export type DeleteProjectIssuesResponse = DeleteProjectIssuesResponses[keyof DeleteProjectIssuesResponses]; export type ListProjectIssuesData = { body?: never; path: { /** * The ID or slug of the organization the issues belong to. */ organization_id_or_slug: string; /** * The ID or slug of the project the issues belong to. */ project_id_or_slug: string; }; query?: { /** * An optional stat period (can be one of `"24h"`, `"14d"`, and `""`), defaults to "24h" if not provided. */ statsPeriod?: string; /** * If this is set to true then short IDs are looked up by this function as well. This can cause the return value of the function to return an event issue of a different project which is why this is an opt-in. Set to 1 to enable. */ shortIdLookup?: boolean; /** * An optional Sentry structured search query. If not provided an implied `"is:unresolved"` is assumed. */ query?: string; /** * A list of hashes of groups to return. Is not compatible with 'query' parameter. The maximum number of hashes that can be sent is 100. If more are sent, only the first 100 will be used. */ hashes?: string; /** * The sort order of the issues. Options include 'Last Seen' (`date`), 'First Seen' (`new`), 'Trends' (`trends`), 'Events' (`freq`), 'Users' (`user`), and 'Recommended' (`recommended`). */ sort?: 'date' | 'new' | 'trends' | 'freq' | 'user' | 'recommended'; /** * The maximum number of issues to return. The maximum is 100. */ limit?: number; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/issues/'; }; export type ListProjectIssuesErrors = { /** * Forbidden */ 403: unknown; }; export type ListProjectIssuesResponses = { /** * Success */ 200: Array<{ annotations: Array; assignedTo: { [key: string]: unknown; } | null; count: string; culprit: string; firstSeen: string; hasSeen: boolean; id: string; isBookmarked: boolean; isPublic: boolean; isSubscribed: boolean; lastSeen: string; level: string; logger: string | null; metadata: { filename: string; type: string; value: string; } | { title: string; }; numComments: number; permalink: string; project: { id?: string; name?: string; slug?: string; }; shareId: string | null; shortId: string; stats: { '24h'?: Array>; }; status: 'resolved' | 'unresolved' | 'ignored'; statusDetails: { [key: string]: unknown; }; subscriptionDetails: { [key: string]: unknown; } | null; title: string; type: string; userCount: number; }>; }; export type ListProjectIssuesResponse = ListProjectIssuesResponses[keyof ListProjectIssuesResponses]; export type UpdateProjectIssuesData = { body: { /** * The new status for the issues. Valid values are `"resolved"`, `"resolvedInNextRelease"`, `"unresolved"`, and `"ignored"`. */ status?: string; /** * Additional details about the resolution. Valid values are `"inRelease"`, `"inNextRelease"`, `"inCommit"`, `"ignoreDuration"`, `"ignoreCount"`, `"ignoreWindow"`, `"ignoreUserCount"`, and `"ignoreUserWindow"`. */ statusDetails?: { inRelease?: string; inNextRelease?: boolean; inCommit?: string; ignoreDuration?: number; ignoreCount?: number; ignoreWindow?: number; ignoreUserCount?: number; ignoreUserWindow?: number; }; /** * The number of minutes to ignore this issue. */ ignoreDuration?: number; /** * Sets the issue to public or private. */ isPublic?: boolean; /** * Allows to merge or unmerge different issues. */ merge?: boolean; /** * The actor ID (or username) of the user or team that should be assigned to this issue. */ assignedTo?: string; /** * In case this API call is invoked with a user context this allows changing of the flag that indicates if the user has seen the event. */ hasSeen?: boolean; /** * In case this API call is invoked with a user context this allows changing of the bookmark flag. */ isBookmarked?: boolean; }; path: { /** * The ID or slug of the organization the issues belong to. */ organization_id_or_slug: string; /** * The ID or slug of the project the issues belong to. */ project_id_or_slug: string; }; query?: { /** * A list of IDs of the issues to be mutated. This parameter shall be repeated for each issue. It is optional only if a status is mutated in which case an implicit update all is assumed. */ id?: number; /** * Optionally limits the query to issues of the specified status. Valid values are `"resolved"`, `"reprocessing"`, `"unresolved"`, and `"ignored"`. */ status?: string; }; url: '/api/0/projects/{organization_id_or_slug}/{project_id_or_slug}/issues/'; }; export type UpdateProjectIssuesErrors = { /** * Bad Input */ 400: unknown; /** * Forbidden */ 403: unknown; /** * The requested resource does not exist */ 404: unknown; }; export type UpdateProjectIssuesResponses = { /** * Success */ 200: { isPublic: boolean; status: 'resolved' | 'unresolved' | 'ignored'; statusDetails: { [key: string]: unknown; }; }; }; export type UpdateProjectIssuesResponse = UpdateProjectIssuesResponses[keyof UpdateProjectIssuesResponses]; export type ListOrganizationIssueTagValuesData = { body?: never; path: { /** * The ID of the issue you'd like to query. */ issue_id: string; /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The tag key to look the values up for. */ key: string; }; query?: { /** * Sort order of the resulting tag values. Prefix with '-' for descending order. Default is '-id'. */ sort?: 'age' | 'count' | 'date' | 'id'; /** * The name of environments to filter by. */ environment?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/tags/{key}/values/'; }; export type ListOrganizationIssueTagValuesErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationIssueTagValuesResponses = { 200: Array<{ query?: string | null; key: string; name: string; value: string | null; count: number | null; lastSeen: string | null; firstSeen: string | null; }>; }; export type ListOrganizationIssueTagValuesResponse = ListOrganizationIssueTagValuesResponses[keyof ListOrganizationIssueTagValuesResponses]; export type ListOrganizationReleaseCommitfilesData = { body?: never; path: { /** * The ID or slug of the organization the release belongs to. */ organization_id_or_slug: string; /** * The version identifier of the release. */ version: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/releases/{version}/commitfiles/'; }; export type ListOrganizationReleaseCommitfilesErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationReleaseCommitfilesResponses = { /** * Success */ 200: unknown; }; export type ListOrganizationSentryAppInstallationsData = { body?: never; path: { /** * The organization short name. */ organization_id_or_slug: string; }; query?: { /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/sentry-app-installations/'; }; export type ListOrganizationSentryAppInstallationsErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationSentryAppInstallationsResponses = { /** * Success */ 200: Array<{ app: { uuid: string; slug: string; sentryAppId: number; }; organization: { slug: string; }; uuid: string; status: string; }>; }; export type ListOrganizationSentryAppInstallationsResponse = ListOrganizationSentryAppInstallationsResponses[keyof ListOrganizationSentryAppInstallationsResponses]; export type CreateSentryAppInstallationExternalIssueData = { body: { /** * The ID of the Sentry issue to link the external issue to. */ issueId: number; /** * The URL of the external service to link the issue to. */ webUrl: string; /** * The external service's project. */ project: string; /** * A unique identifier of the external issue. */ identifier: string; }; path: { /** * The uuid of the integration platform integration. */ uuid: string; }; query?: never; url: '/api/0/sentry-app-installations/{uuid}/external-issues/'; }; export type CreateSentryAppInstallationExternalIssueErrors = { /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type CreateSentryAppInstallationExternalIssueResponses = { /** * Success */ 200: { id: string; issueId: string; serviceType: string; displayName: string; webUrl: string; }; }; export type CreateSentryAppInstallationExternalIssueResponse = CreateSentryAppInstallationExternalIssueResponses[keyof CreateSentryAppInstallationExternalIssueResponses]; export type DeleteSentryAppInstallationExternalIssueData = { body?: never; path: { /** * The uuid of the integration platform integration. */ uuid: string; /** * The ID of the external issue. */ external_issue_id: string; }; query?: never; url: '/api/0/sentry-app-installations/{uuid}/external-issues/{external_issue_id}/'; }; export type DeleteSentryAppInstallationExternalIssueErrors = { /** * Forbidden */ 403: unknown; /** * External issue not found */ 404: unknown; }; export type DeleteSentryAppInstallationExternalIssueResponses = { /** * Success */ 204: void; }; export type DeleteSentryAppInstallationExternalIssueResponse = DeleteSentryAppInstallationExternalIssueResponses[keyof DeleteSentryAppInstallationExternalIssueResponses]; export type DeleteOrganizationSpikeProtectionsData = { /** * Django Rest Framework serializer for incoming Spike Protection API payloads */ body: { /** * Slugs of projects to disable Spike Protection for. Set to `$all` to disable Spike Protection for all the projects in the organization. */ projects: Array; }; path: { /** * The ID or slug of the organization the projects belong to */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/spike-protections/'; }; export type DeleteOrganizationSpikeProtectionsErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type DeleteOrganizationSpikeProtectionsResponses = { /** * Success */ 200: unknown; }; export type CreateOrganizationSpikeProtectionData = { /** * Django Rest Framework serializer for incoming Spike Protection API payloads */ body: { /** * Slugs of projects to enable Spike Protection for. Set to `$all` to enable Spike Protection for all the projects in the organization. */ projects: Array; }; path: { /** * The ID or slug of the organization the projects belong to */ organization_id_or_slug: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/spike-protections/'; }; export type CreateOrganizationSpikeProtectionErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; }; export type CreateOrganizationSpikeProtectionResponses = { /** * Success */ 201: unknown; }; export type DeleteOrganizationIssueData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/'; }; export type DeleteOrganizationIssueErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationIssueResponses = { /** * Accepted */ 202: unknown; }; export type GetOrganizationIssueData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; /** * Additional data to include in the response. */ expand?: Array<'forecast' | 'inbox' | 'integrationIssues' | 'latestEventHasAttachments' | 'owners' | 'sentryAppIssues'>; /** * Fields to remove from the response to improve query performance. */ collapse?: Array<'release' | 'stats' | 'tags'>; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/'; }; export type GetOrganizationIssueErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationIssueResponses = { 200: { isUnhandled?: boolean; count?: string; userCount?: number; firstSeen?: string | null; lastSeen?: string | null; derivedData?: { blocker: string; progress: string; status: string; viewCount: number; hasOpenFixPr: boolean; isAssigned: boolean; hasRootCause: boolean; lastCompletedAutofixStep: string; lastProgressedAt: string | null; }; id: string; shareId: string | null; shortId: string; title: string; culprit: string | null; permalink: string; logger: string | null; level: 'sample' | 'debug' | 'info' | 'warning' | 'error' | 'fatal' | 'unknown'; status: 'resolved' | 'ignored' | 'pending_deletion' | 'pending_merge' | 'reprocessing' | 'unresolved'; statusDetails: { ignoreCount?: number; ignoreUntil?: string; ignoreUserCount?: number; ignoreUserWindow?: number; ignoreWindow?: number; actor?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; inNextRelease?: boolean; inRelease?: string; inCommit?: string; pendingEvents?: number; info?: { dateCreated: string; syncCount: number; totalEvents: number; } | null; }; substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; isPublic: boolean; platform: string | null; priority: 'low' | 'medium' | 'high' | null; priorityLockedAt: string | null; seerFixabilityScore: number | null; seerAutofixLastTriggered: string | null; seerExplorerAutofixLastTriggered: string | null; project: { id: string; name: string; slug: string; platform: string | null; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; issueType: string; issueCategory: string; metadata: { [key: string]: unknown; }; numComments: number; assignedTo: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; isBookmarked: boolean; isSubscribed: boolean; subscriptionDetails: { disabled?: boolean; reason?: string; } | null; hasSeen: boolean; annotations: Array<{ displayName: string; url: string; }>; firstRelease?: { [key: string]: unknown; } | null; lastRelease?: { [key: string]: unknown; } | null; tags?: Array<{ [key: string]: unknown; }>; stats?: { [key: string]: Array>; }; inbox?: { reason: number; reason_details: { until: string | null; count: number | null; window: number | null; user_count: number | null; user_window: number | null; } | null; date_added: string; } | null; owners?: Array<{ type: string; owner: string; date_added: string; }> | null; forecast?: { [key: string]: unknown; }; integrationIssues?: Array<{ [key: string]: unknown; }>; sentryAppIssues?: Array<{ id: string; issueId: string; serviceType: string; displayName: string; webUrl: string; }>; latestEventHasAttachments?: boolean; activity: Array<{ [key: string]: unknown; }>; seenBy: Array<{ [key: string]: unknown; }>; userReportCount: number; participants: Array<{ [key: string]: unknown; }>; }; }; export type GetOrganizationIssueResponse = GetOrganizationIssueResponses[keyof GetOrganizationIssueResponses]; export type UpdateOrganizationIssueData = { body: { /** * If true, marks the issue as reviewed by the requestor. */ inbox: boolean; /** * Limit mutations to only issues with the given status. * * * `resolved` * * `unresolved` * * `ignored` * * `resolvedInNextRelease` * * `muted` */ status: 'resolved' | 'unresolved' | 'ignored' | 'resolvedInNextRelease' | 'muted'; /** * Additional details about the resolution. Status detail updates that include release data are only allowed for issues within a single project. */ statusDetails: { /** * If true, marks the issue as resolved in the next release. */ inNextRelease: boolean; /** * The version of the release that the issue should be resolved in.If set to `latest`, the latest release will be used. */ inRelease: string; /** * The commit data that the issue should use for resolution. */ inCommit?: { /** * The SHA of the resolving commit. */ commit: string; /** * The name of the repository (as it appears in Sentry). */ repository: string; }; /** * Ignore the issue until for this many minutes. */ ignoreDuration: number; /** * Ignore the issue until it has occurred this many times in `ignoreWindow` minutes. */ ignoreCount: number; /** * Ignore the issue until it has occurred `ignoreCount` times in this many minutes. (Max: 1 week) */ ignoreWindow: number; /** * Ignore the issue until it has affected this many users in `ignoreUserWindow` minutes. */ ignoreUserCount: number; /** * Ignore the issue until it has affected `ignoreUserCount` users in this many minutes. (Max: 1 week) */ ignoreUserWindow: number; }; /** * The new substatus of the issue. * * * `archived_until_escalating` * * `archived_until_condition_met` * * `archived_forever` * * `escalating` * * `ongoing` * * `regressed` * * `new` */ substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; /** * If true, marks the issue as seen by the requestor. */ hasSeen: boolean; /** * If true, bookmarks the issue for the requestor. */ isBookmarked: boolean; /** * If true, publishes the issue. */ isPublic: boolean; /** * If true, subscribes the requestor to the issue. */ isSubscribed: boolean; /** * If true, merges the issues together. */ merge: boolean; /** * If true, discards the issues instead of updating them. */ discard: boolean; /** * The user or team that should be assigned to the issues. Values take the form of ``, `user:`, ``, ``, or `team:`. */ assignedTo: string; /** * The priority that should be set for the issues * * * `low` * * `medium` * * `high` */ priority: 'low' | 'medium' | 'high'; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/'; }; export type UpdateOrganizationIssueErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationIssueResponses = { 200: { isUnhandled?: boolean; count?: string; userCount?: number; firstSeen?: string | null; lastSeen?: string | null; derivedData?: { blocker: string; progress: string; status: string; viewCount: number; hasOpenFixPr: boolean; isAssigned: boolean; hasRootCause: boolean; lastCompletedAutofixStep: string; lastProgressedAt: string | null; }; id: string; shareId: string | null; shortId: string; title: string; culprit: string | null; permalink: string; logger: string | null; level: 'sample' | 'debug' | 'info' | 'warning' | 'error' | 'fatal' | 'unknown'; status: 'resolved' | 'ignored' | 'pending_deletion' | 'pending_merge' | 'reprocessing' | 'unresolved'; statusDetails: { ignoreCount?: number; ignoreUntil?: string; ignoreUserCount?: number; ignoreUserWindow?: number; ignoreWindow?: number; actor?: { identities?: Array<{ id: string; name: string; organization: { slug: string; name: string; }; provider: { id: string; name: string; }; dateVerified: string; dateSynced: string; }>; avatar?: { avatarType?: string; avatarUuid?: string | null; avatarUrl?: string | null; }; authenticators?: Array; canReset2fa?: boolean; id: string; name: string; username: string; email: string; avatarUrl: string; isActive: boolean; isSuspended: boolean; hasPasswordAuth: boolean; isManaged: boolean; dateJoined: string; lastLogin: string | null; has2fa: boolean; lastActive: string | null; isSuperuser: boolean; isStaff: boolean; experiments: { [key: string]: unknown; }; emails: Array<{ id: string; email: string; is_verified: boolean; }>; }; inNextRelease?: boolean; inRelease?: string; inCommit?: string; pendingEvents?: number; info?: { dateCreated: string; syncCount: number; totalEvents: number; } | null; }; substatus: 'archived_until_escalating' | 'archived_until_condition_met' | 'archived_forever' | 'escalating' | 'ongoing' | 'regressed' | 'new' | null; isPublic: boolean; platform: string | null; priority: 'low' | 'medium' | 'high' | null; priorityLockedAt: string | null; seerFixabilityScore: number | null; seerAutofixLastTriggered: string | null; seerExplorerAutofixLastTriggered: string | null; project: { id: string; name: string; slug: string; platform: string | null; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; issueType: string; issueCategory: string; metadata: { [key: string]: unknown; }; numComments: number; assignedTo: { type: 'user' | 'team'; id: string; name: string; email?: string; } | null; isBookmarked: boolean; isSubscribed: boolean; subscriptionDetails: { disabled?: boolean; reason?: string; } | null; hasSeen: boolean; annotations: Array<{ displayName: string; url: string; }>; }; }; export type UpdateOrganizationIssueResponse = UpdateOrganizationIssueResponses[keyof UpdateOrganizationIssueResponses]; export type GetOrganizationIssueAutofixStateData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; }; query?: { /** * If set, adds a `formatted` field to the response with the autofix rendered as the requested format for LLM consumption. */ llmFormat?: 'markdown' | 'xml'; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/autofix/'; }; export type GetOrganizationIssueAutofixStateErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationIssueAutofixStateResponses = { /** * Response type for the GET endpoint */ 200: { /** * The ``formatted`` field the mixin adds to a response when ``?llmFormat`` is requested. */ formatted?: { format: 'markdown' | 'xml'; content: string; }; autofix: { [key: string]: unknown; } | null; }; }; export type GetOrganizationIssueAutofixStateResponse = GetOrganizationIssueAutofixStateResponses[keyof GetOrganizationIssueAutofixStateResponses]; export type StartOrganizationIssueAutofixData = { /** * Serializer for the agent-based autofix requests. */ body?: { /** * Which autofix step to run. * * * `root_cause` * * `solution` * * `code_changes` * * `pr_iteration` * * `open_pr` * * `coding_agent_handoff` */ step?: 'root_cause' | 'solution' | 'code_changes' | 'pr_iteration' | 'open_pr' | 'coding_agent_handoff'; /** * Where the issue fix process should stop. If not provided, will run to root cause. * * * `root_cause` * * `solution` * * `code_changes` * * `open_pr` */ stopping_point?: 'root_cause' | 'solution' | 'code_changes' | 'open_pr'; /** * **Deprecated** in favor of sentry_run_id; retained for backward compatibility. The existing run's numeric Seer id to continue. If neither run_id nor sentry_run_id is provided, starts a new run. */ run_id?: number; /** * Existing run's UUID to continue. Preferred over run_id, and takes precedence when both are given. */ sentry_run_id?: string; /** * Coding agent integration ID. Required for coding_agent_handoff step (unless provider is specified). */ integration_id?: number; /** * Coding agent provider (e.g., 'github_copilot'). Alternative to integration_id for user-authenticated providers. */ provider?: string; /** * Optional user context to append to the step prompt. */ user_context?: string; /** * Optional repository name for which to create the pull request. Do not pass a repository name to create pull requests in all relevant repositories. */ repo_name?: string; /** * Block index to insert at. When provided, truncates blocks after this point for retry-from-step. */ insert_index?: number; /** * Referrer identifying where the issue fix was triggered from. */ referrer?: string; /** * Override bash mode tools. */ enable_bash_tools?: boolean; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/autofix/'; }; export type StartOrganizationIssueAutofixErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type StartOrganizationIssueAutofixResponses = { /** * Response type for the POST endpoint (default kickoff and step paths). */ 202: { run_id: number; sentry_run_id: string | null; }; }; export type StartOrganizationIssueAutofixResponse = StartOrganizationIssueAutofixResponses[keyof StartOrganizationIssueAutofixResponses]; export type ListOrganizationIssueEventsData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; }; query?: { /** * The start of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ start?: string; /** * The end of the period of time for the query, expected in ISO-8601 format. For example, `2001-12-14T12:34:56.7890`. */ end?: string; /** * The period of time for the query, will override the start & end parameters, a number followed by one of: * - `d` for days * - `h` for hours * - `m` for minutes * - `s` for seconds * - `w` for weeks * * For example, `24h`, to mean query data starting from 24 hours ago to now. */ statsPeriod?: string; /** * The name of environments to filter by. */ environment?: Array; /** * Specify true to include the full event body, including the stacktrace, in the event payload. */ full?: boolean; /** * Return events in pseudo-random order. This is deterministic so an identical query will always return the same events in the same order. */ sample?: boolean; /** * An optional search query for filtering events. See [search syntax](https://docs.sentry.io/concepts/search/) and queryable event properties at [Sentry Search Documentation](https://docs.sentry.io/concepts/search/searchable-properties/events/) for more information. An example query might be `query=transaction:foo AND release:abc` */ query?: string; /** * Limit the number of rows to return in the result. Default and maximum allowed is 100. */ per_page?: number; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/events/'; }; export type ListOrganizationIssueEventsErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationIssueEventsResponses = { 200: Array<{ id: string; 'event.type': string; groupID: string | null; eventID: string; projectID: string; message: string; title: string; location: string | null; culprit: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string | null; dateCreated: string; crashFile: string | null; metadata: { [key: string]: unknown; }; }>; }; export type ListOrganizationIssueEventsResponse = ListOrganizationIssueEventsResponses[keyof ListOrganizationIssueEventsResponses]; export type GetOrganizationIssueEventData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; /** * The ID of the event to retrieve, or 'latest', 'oldest', or 'recommended'. */ event_id: 'latest' | 'oldest' | 'recommended'; }; query?: { /** * The name of environments to filter by. */ environment?: Array; /** * If set, adds a `formatted` field to the response with the event rendered as the requested format for LLM consumption. */ llmFormat?: 'markdown' | 'xml'; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/events/{event_id}/'; }; export type GetOrganizationIssueEventErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationIssueEventResponses = { 200: { id: string; groupID: string | null; eventID: string; projectID: string; message: string | null; title: string; location: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string; dateReceived: string | null; contexts: { [key: string]: unknown; } | null; size: number | null; entries: Array; dist: string | null; sdk: { name: string | null; version: string | null; } | null; context: { [key: string]: unknown; } | null; packages: { [key: string]: unknown; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; metadata: { [key: string]: unknown; }; errors: Array<{ type: string; message: string; data: { [key: string]: unknown; }; }>; occurrence: { id: string; projectId: number; eventId: string; fingerprint: Array; issueTitle: string; subtitle: string; resourceId: string | null; evidenceData: { [key: string]: unknown; }; evidenceDisplay: Array<{ name: string; value: string; important: boolean; }>; type: number; detectionTime: number; level: string | null; culprit: string | null; assignee: string | null; priority: number | null; } | null; _meta: { [key: string]: unknown; }; crashFile?: string | null; culprit?: string | null; dateCreated?: string; fingerprints?: Array; groupingConfig?: { id: string; enhancements: string; }; startTimestamp?: number; endTimestamp?: number; measurements?: { [key: string]: { value: number; unit: string | null; }; } | null; breakdowns?: { [key: string]: { [key: string]: { value: number; unit: string | null; }; }; } | null; release: { id?: number; commitCount?: number; data?: { [key: string]: unknown; }; dateCreated?: string; dateReleased?: string | null; deployCount?: number; ref?: string | null; lastCommit?: { [key: string]: unknown; } | null; lastDeploy?: { dateStarted?: string | null; url?: string | null; id: string; environment: string; dateFinished: string; name: string; } | null; status?: string; url?: string | null; userAgent?: string | null; version?: string | null; versionInfo?: { description?: string; package: string | null; version: { [key: string]: unknown; }; buildHash: string | null; } | null; } | null; userReport: { id: string; eventID: string; name: string | null; email: string | null; comments: string; dateCreated: string; user: { id: string; username: string | null; email: string | null; name: string | null; ipAddress: string | null; avatarUrl: string | null; } | null; event: { id: string; eventID: string; }; } | null; sdkUpdates: Array<{ [key: string]: unknown; }>; resolvedWith: Array; nextEventID: string | null; previousEventID: string | null; /** * The ``formatted`` field the mixin adds to a response when ``?llmFormat`` is requested. */ formatted?: { format: 'markdown' | 'xml'; content: string; }; }; }; export type GetOrganizationIssueEventResponse = GetOrganizationIssueEventResponses[keyof GetOrganizationIssueEventResponses]; export type ListOrganizationIssueExternalIssuesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/external-issues/'; }; export type ListOrganizationIssueExternalIssuesResponses = { 200: Array<{ id: string; issueId: string; serviceType: string; displayName: string; webUrl: string; }>; }; export type ListOrganizationIssueExternalIssuesResponse = ListOrganizationIssueExternalIssuesResponses[keyof ListOrganizationIssueExternalIssuesResponses]; export type ListOrganizationIssueHashesData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; }; query?: { /** * Specify true to include the full event body, including the stacktrace, in the event payload. */ full?: boolean; /** * A pointer to the last object fetched and its sort order; used to retrieve the next or previous results. */ cursor?: string; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/hashes/'; }; export type ListOrganizationIssueHashesErrors = { /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type ListOrganizationIssueHashesResponses = { 200: Array<{ id: string; latestEvent: { id: string; groupID: string | null; eventID: string; projectID: string; message: string | null; title: string; location: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string; dateReceived: string | null; contexts: { [key: string]: unknown; } | null; size: number | null; entries: Array; dist: string | null; sdk: { name: string | null; version: string | null; } | null; context: { [key: string]: unknown; } | null; packages: { [key: string]: unknown; }; type: 'default' | 'error' | 'csp' | 'nel' | 'hpkp' | 'expectct' | 'expectstaple' | 'transaction' | 'generic' | 'feedback'; metadata: { [key: string]: unknown; }; errors: Array<{ type: string; message: string; data: { [key: string]: unknown; }; }>; occurrence: { id: string; projectId: number; eventId: string; fingerprint: Array; issueTitle: string; subtitle: string; resourceId: string | null; evidenceData: { [key: string]: unknown; }; evidenceDisplay: Array<{ name: string; value: string; important: boolean; }>; type: number; detectionTime: number; level: string | null; culprit: string | null; assignee: string | null; priority: number | null; } | null; _meta: { [key: string]: unknown; }; crashFile?: string | null; culprit?: string | null; dateCreated?: string; fingerprints?: Array; groupingConfig?: { id: string; enhancements: string; }; startTimestamp?: number; endTimestamp?: number; measurements?: { [key: string]: { value: number; unit: string | null; }; } | null; breakdowns?: { [key: string]: { [key: string]: { value: number; unit: string | null; }; }; } | null; } | { id: string; 'event.type': string; groupID: string | null; eventID: string; projectID: string; message: string; title: string; location: string | null; culprit: string | null; user: { id?: string | null; email?: string | null; username?: string | null; ip_address?: string | null; name?: string | null; geo?: { [key: string]: string; } | null; data?: { [key: string]: unknown; } | null; } | null; tags: Array<{ query?: string; key: string; value: string; }>; platform: string | null; dateCreated: string; crashFile: string | null; metadata: { [key: string]: unknown; }; } | { [key: string]: unknown; } | null; mergedBySeer: boolean; seerMatchDistance: number | null; }>; }; export type ListOrganizationIssueHashesResponse = ListOrganizationIssueHashesResponses[keyof ListOrganizationIssueHashesResponses]; export type DeleteOrganizationIssueIntegrationData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; /** * The ID of the integration installed on the organization. */ integration_id: string; }; query: { /** * The ID of the `ExternalIssue` link to remove. */ externalIssue: number; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/integrations/{integration_id}/'; }; export type DeleteOrganizationIssueIntegrationErrors = { /** * Bad Request */ 400: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type DeleteOrganizationIssueIntegrationResponses = { /** * No Content */ 204: void; }; export type DeleteOrganizationIssueIntegrationResponse = DeleteOrganizationIssueIntegrationResponses[keyof DeleteOrganizationIssueIntegrationResponses]; export type GetOrganizationIssueIntegrationData = { body?: never; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; /** * The ID of the integration installed on the organization. */ integration_id: string; }; query: { /** * Whether to fetch the config for linking an existing external issue (`link`) or creating a new one (`create`). */ action: 'create' | 'link'; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/integrations/{integration_id}/'; }; export type GetOrganizationIssueIntegrationErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationIssueIntegrationResponses = { 200: { id: string; name: string; icon: string | null; domainName: string | null; accountType: string | null; scopes: Array | null; outOfDate: boolean | null; status: string; provider: { key: string; slug: string; name: string; canAdd: boolean; canDisable: boolean; features: Array; aspects: { [key: string]: unknown; }; }; linkIssueConfig?: Array<{ [key: string]: unknown; }>; createIssueConfig?: Array<{ [key: string]: unknown; }>; }; }; export type GetOrganizationIssueIntegrationResponse = GetOrganizationIssueIntegrationResponses[keyof GetOrganizationIssueIntegrationResponses]; export type CreateOrganizationIssueIntegrationData = { body: { /** * The title of the external issue to create. */ title: string; /** * The description (body) of the external issue to create. */ description?: string; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; /** * The ID of the integration installed on the organization. */ integration_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/integrations/{integration_id}/'; }; export type CreateOrganizationIssueIntegrationErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Not Found */ 404: unknown; }; export type CreateOrganizationIssueIntegrationResponses = { 201: { id: number; key: string; url: string; integrationId: number; displayName: string; }; }; export type CreateOrganizationIssueIntegrationResponse = CreateOrganizationIssueIntegrationResponses[keyof CreateOrganizationIssueIntegrationResponses]; export type UpdateOrganizationIssueIntegrationData = { body: { /** * The identifier of the existing external issue to link, as understood by the provider (such as a Jira issue key). */ externalIssue: string; }; path: { /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The ID of the issue you'd like to query. */ issue_id: string; /** * The ID of the integration installed on the organization. */ integration_id: string; }; query?: never; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/integrations/{integration_id}/'; }; export type UpdateOrganizationIssueIntegrationErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Not Found */ 404: unknown; }; export type UpdateOrganizationIssueIntegrationResponses = { 201: { id: number; key: string; url: string; integrationId: number; displayName: string; }; }; export type UpdateOrganizationIssueIntegrationResponse = UpdateOrganizationIssueIntegrationResponses[keyof UpdateOrganizationIssueIntegrationResponses]; export type GetOrganizationIssueTagData = { body?: never; path: { /** * The ID of the issue you'd like to query. */ issue_id: string; /** * The ID or slug of the organization the resource belongs to. */ organization_id_or_slug: string; /** * The tag key to look the values up for. */ key: string; }; query?: { /** * The name of environments to filter by. */ environment?: Array; }; url: '/api/0/organizations/{organization_id_or_slug}/issues/{issue_id}/tags/{key}/'; }; export type GetOrganizationIssueTagErrors = { /** * Bad Request */ 400: unknown; /** * Unauthorized */ 401: unknown; /** * Forbidden */ 403: unknown; /** * Not Found */ 404: unknown; }; export type GetOrganizationIssueTagResponses = { 200: { uniqueValues?: number | null; totalValues?: number | null; topValues?: Array<{ query?: string | null; key: string; name: string; value: string | null; count: number | null; lastSeen: string | null; firstSeen: string | null; }> | null; key: string; name: string; }; }; export type GetOrganizationIssueTagResponse = GetOrganizationIssueTagResponses[keyof GetOrganizationIssueTagResponses];