{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/ping":{"get":{"summary":"Ping","operationId":"ping_ping_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"summary":"Oauth Protected Resource","description":"Tell clients where to find the authorization server.","operationId":"oauth_protected_resource__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource/mcp":{"get":{"summary":"Mcp Oauth Protected Resource","description":"Tell clients where to find the authorization server.","operationId":"mcp_oauth_protected_resource__well_known_oauth_protected_resource_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"summary":"Oauth Authorization Server","description":"Tell clients where to find the authorization server.","operationId":"oauth_authorization_server__well_known_oauth_authorization_server_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/oauth2/register":{"post":{"summary":"Register Client","description":"RFC 7591 — OAuth 2.0 Dynamic Client Registration Protocol.","operationId":"register_client_auth_oauth2_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterParameters"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/oauth2/authorize":{"get":{"tags":["OAuth2"],"summary":"Oauth2 Authorize","description":"Authorization endpoint — not used by the SDK.","operationId":"oauth2_authorize_auth_oauth2_authorize_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["OAuth2"],"summary":"Oauth2 Authorize","description":"Authorization endpoint — not used by the SDK.","operationId":"oauth2_authorize_auth_oauth2_authorize_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/oauth2/token":{"post":{"summary":"Token Endpoint","description":"Token endpoint — dispatches to the appropriate grant handler.\n\nSupported grants:\n- password: dashboard / mobile SDK login\n- authorization_code: MCP OAuth2 PKCE flow\n- refresh_token: rotate a refresh token","operationId":"token_endpoint_auth_oauth2_token_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/TokenParameters"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/products":{"get":{"tags":["Billing"],"summary":"Get Products","description":"List all products.","operationId":"get_products_api_1_0_billing_products_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BaseProductSchema"},"title":"Response Get Products Api 1 0 Billing Products Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/plans":{"get":{"tags":["Billing"],"summary":"Get Plans","description":"List all plans.","operationId":"get_plans_api_1_0_billing_plans_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BasePlanSchema"},"title":"Response Get Plans Api 1 0 Billing Plans Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/{team_id}/subscription":{"get":{"tags":["Billing"],"summary":"Get Subscription","description":"Get the current active subscription for a team.","operationId":"get_subscription_api_1_0_billing__team_id__subscription_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/BaseSubscriptionSchema"},{"type":"null"}],"title":"Response Get Subscription Api 1 0 Billing  Team Id  Subscription Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Billing"],"summary":"Update Subscription","description":"Update an existing customer subscription.","operationId":"update_subscription_api_1_0_billing__team_id__subscription_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradePlansParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseSubscriptionSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Billing"],"summary":"Patch Subscription","description":"Cancel or reactivate a subscription.","operationId":"patch_subscription_api_1_0_billing__team_id__subscription_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchSubscriptionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseSubscriptionSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/{team_id}/upcoming":{"get":{"tags":["Billing"],"summary":"Get Upcoming Invoice","description":"Get the upcoming invoice amount for the current subscription.","operationId":"get_upcoming_invoice_api_1_0_billing__team_id__upcoming_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Response Get Upcoming Invoice Api 1 0 Billing  Team Id  Upcoming Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Billing"],"summary":"Get Upcoming Invoice For Plans","description":"Get the prorated upcoming invoice amount if the customer were to switch plans.","operationId":"get_upcoming_invoice_for_plans_api_1_0_billing__team_id__upcoming_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradePlansParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Upcoming Invoice For Plans Api 1 0 Billing  Team Id  Upcoming Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/{team_id}/invoices":{"get":{"tags":["Billing"],"summary":"Get Invoices","description":"Get all paid/open invoices for a team.","operationId":"get_invoices_api_1_0_billing__team_id__invoices_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BaseInvoiceSchema"},"title":"Response Get Invoices Api 1 0 Billing  Team Id  Invoices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/{team_id}/checkout":{"post":{"tags":["Billing"],"summary":"Create Checkout Session","description":"Create a Stripe checkout session for a new subscription.","operationId":"create_checkout_session_api_1_0_billing__team_id__checkout_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradePlansParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseCheckoutSessionSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Billing"],"summary":"Update Checkout Session","description":"Create a Stripe setup session to update the customer's payment method.","operationId":"update_checkout_session_api_1_0_billing__team_id__checkout_put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Checkout Session Api 1 0 Billing  Team Id  Checkout Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/{team_id}/customer":{"get":{"tags":["Billing"],"summary":"Get Customer","description":"Get billing customer details for a team.","operationId":"get_customer_api_1_0_billing__team_id__customer_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseCustomerSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Billing"],"summary":"Patch Customer","description":"Update billing customer details.","operationId":"patch_customer_api_1_0_billing__team_id__customer_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchCustomerBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseCustomerSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/{team_id}/credit_card":{"get":{"tags":["Billing"],"summary":"Get Credit Card","description":"Get the most recent active credit card for a team.","operationId":"get_credit_card_api_1_0_billing__team_id__credit_card_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/BaseCreditCardSchema"},{"type":"null"}],"title":"Response Get Credit Card Api 1 0 Billing  Team Id  Credit Card Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/{team_id}/check_coupon_code":{"post":{"tags":["Billing"],"summary":"Check Coupon Code","description":"Check if a coupon code is valid.","operationId":"check_coupon_code_api_1_0_billing__team_id__check_coupon_code_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckCouponParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseCouponSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/billing/webhooks/stripe":{"post":{"tags":["Billing"],"summary":"Stripe Webhook","description":"Handle incoming Stripe webhook events.","operationId":"stripe_webhook_api_1_0_billing_webhooks_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Stripe Webhook Api 1 0 Billing Webhooks Stripe Post"}}}}}}},"/api/2.0/user_model/app_user":{"post":{"tags":["user_model"],"summary":"Create App User","description":"Create a new app user.","operationId":"create_app_user_api_2_0_user_model_app_user_post","security":[{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAppUserParameters"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserMobileSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["user_model"],"summary":"Delete Unset Device Token","description":"Delete all instances of app device token.","operationId":"delete_unset_device_token_api_2_0_user_model_app_user_delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"device_token","in":"query","required":true,"schema":{"type":"string","title":"Device Token"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/2.0/user_model/app_user/{app_user_id}":{"get":{"tags":["user_model"],"summary":"Get App User","description":"Get app users by app_user id.","operationId":"get_app_user_api_2_0_user_model_app_user__app_user_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","title":"App User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserMobileSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["user_model"],"summary":"Update App User","description":"Update app user.","operationId":"update_app_user_api_2_0_user_model_app_user__app_user_id__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","title":"App User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAppUserParameters"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserMobileSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["user_model"],"summary":"Unset App User Device Token","description":"Delete app user.","operationId":"unset_app_user_device_token_api_2_0_user_model_app_user__app_user_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","title":"App User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/2.0/user_model/app_user/{app_user_id}/tickets":{"get":{"tags":["user_model"],"summary":"Get App User Tickets","description":"Get paginated ticket list for an app user.","operationId":"get_app_user_tickets_api_2_0_user_model_app_user__app_user_id__tickets_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","title":"App User Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"return_all","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Return All"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppUserTicketsSchema"},"title":"Response Get App User Tickets Api 2 0 User Model App User  App User Id  Tickets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/2.0/user_model/app_user/{app_user_id}/tickets_sync":{"get":{"tags":["user_model"],"summary":"Get App User Tickets Sync","description":"Get AppUser tickets by app_user id.\n\n`last_sync` is `LenientInt` because an SDK build sends it in the device's locale numerals --\n`query.last_sync` arrived as `'١٧٨٠٤٨٩٧٧٧٥٦٢'` in production on 2026-09-24. Flask's marshmallow\n`base_fields.Integer` coerced that with `int()`, which accepts any Unicode decimal digit; Pydantic\nparses ASCII only and 422'd. `limit`/`offset` above come from the same client, so they match.","operationId":"get_app_user_tickets_sync_api_2_0_user_model_app_user__app_user_id__tickets_sync_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","title":"App User Id"}},{"name":"last_sync","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Sync"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileTicketSyncSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/2.0/user_model/app_user/{app_user_id}/tickets/reply":{"post":{"tags":["user_model"],"summary":"App User Reply","description":"Create ticket reply","operationId":"app_user_reply_api_2_0_user_model_app_user__app_user_id__tickets_reply_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","title":"App User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketReplyParameters"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketReplySchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/2.0/user_model/app_user/{app_user_id}/tickets/read":{"post":{"tags":["user_model"],"summary":"App User Read","description":"Read user model chat messages by ticket_id","operationId":"app_user_read_api_2_0_user_model_app_user__app_user_id__tickets_read_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","title":"App User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketReadParameters"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/user_model/app_user/{app_user_id}":{"get":{"tags":["user_model","user_model"],"summary":"Get App User","operationId":"get_app_user_api_1_0_user_model_app_user__app_user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserDetailSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/user_model/{team_id}/apps/{app_id}/users":{"get":{"tags":["user_model","user_model"],"summary":"List App Users","operationId":"list_app_users_api_1_0_user_model__team_id__apps__app_id__users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"sort","in":"query","required":false,"schema":{"$ref":"#/components/schemas/AppUserSortKey","default":"created"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserListInfoSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/user_model/{team_id}/apps/{app_id}/users/filter":{"get":{"tags":["user_model","user_model"],"summary":"Get App User Filters","operationId":"get_app_user_filters_api_1_0_user_model__team_id__apps__app_id__users_filter_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"search_text","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Text"}},{"name":"search_field","in":"query","required":true,"schema":{"type":"string","title":"Search Field"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppUserFilterSchema"},"title":"Response Get App User Filters Api 1 0 User Model  Team Id  Apps  App Id  Users Filter Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["user_model","user_model"],"summary":"Filter App Users","operationId":"filter_app_users_api_1_0_user_model__team_id__apps__app_id__users_filter_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserSearchFilterParameters"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserListInfoSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/user_model/{team_id}/apps/{app_id}/users/searchable":{"get":{"tags":["user_model","user_model"],"summary":"Get App User Searchable Keys","description":"Return searchable app user metadata keys.\n\nThe two the index can actually answer, not every key the app happens to write. `metadata_` is\nmapped `object` with `\"dynamic\": false` and exactly first_name/last_name\n(flaskapp/app/modules/user_model/models.py), so any other key is kept in `_source` and never\nindexed -- offering it as a filter would produce an empty result rather than an error, which the\ndashboard would render as \"no such end users\". Arbitrary-key filtering is the *issue* side's\nfeature; app users are searchable by name by design.\n\nThis used to enumerate the keys present in Postgres, which advertised filters the index cannot\nserve. Only the rows that carry a value are reported, so an app that never sets a name gets an\nempty list rather than a dropdown that can only return nothing.","operationId":"get_app_user_searchable_keys_api_1_0_user_model__team_id__apps__app_id__users_searchable_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchableAppUserFieldsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/user_model/{team_id}/apps/{app_id}/users/{app_user_id}":{"get":{"tags":["user_model","user_model"],"summary":"Get App User By Id","operationId":"get_app_user_by_id_api_1_0_user_model__team_id__apps__app_id__users__app_user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserTicketListSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["user_model","user_model"],"summary":"Patch App User","operationId":"patch_app_user_api_1_0_user_model__team_id__apps__app_id__users__app_user_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAppUserBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserDetailSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/user_model/{team_id}/common_replies":{"get":{"tags":["user_model","user_model"],"summary":"List Common Replies","operationId":"list_common_replies_api_1_0_user_model__team_id__common_replies_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CommonRepliesSchema"},"title":"Response List Common Replies Api 1 0 User Model  Team Id  Common Replies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["user_model","user_model"],"summary":"Create Common Reply","operationId":"create_common_reply_api_1_0_user_model__team_id__common_replies_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommonRepliesParameters"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommonRepliesSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/user_model/{team_id}/common_replies/{common_reply_id}":{"get":{"tags":["user_model","user_model"],"summary":"Get Common Reply","operationId":"get_common_reply_api_1_0_user_model__team_id__common_replies__common_reply_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"common_reply_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Common Reply Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommonRepliesSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["user_model","user_model"],"summary":"Update Common Reply","operationId":"update_common_reply_api_1_0_user_model__team_id__common_replies__common_reply_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"common_reply_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Common Reply Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommonRepliesParameters"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommonRepliesSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["user_model","user_model"],"summary":"Delete Common Reply","operationId":"delete_common_reply_api_1_0_user_model__team_id__common_replies__common_reply_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"common_reply_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Common Reply Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/user_model/{team_id}/apps/{app_id}/push_notifications":{"get":{"tags":["user_model","user_model"],"summary":"Get Push Notification Auth","operationId":"get_push_notification_auth_api_1_0_user_model__team_id__apps__app_id__push_notifications_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["user_model","user_model"],"summary":"Upload Push Notification Auth","operationId":"upload_push_notification_auth_api_1_0_user_model__team_id__apps__app_id__push_notifications_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_push_notification_auth_api_1_0_user_model__team_id__apps__app_id__push_notifications_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppPushNotificationAuthSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["user_model","user_model"],"summary":"Delete Push Notification Auth","operationId":"delete_push_notification_auth_api_1_0_user_model__team_id__apps__app_id__push_notifications_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/misc/changelogs":{"get":{"tags":["misc"],"summary":"List Changelogs","description":"List changelogs. Public -- no auth dependency at all, matching Flask's `Changelogs.get`.","operationId":"list_changelogs_api_1_0_misc_changelogs_get","parameters":[{"name":"sort","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ChangelogSortKey","default":"latest"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"return_all","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Return All"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ChangelogSchema"},"title":"Response List Changelogs Api 1 0 Misc Changelogs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/misc/changelog_notification":{"get":{"tags":["misc"],"summary":"List Changelog Notifications","description":"List the current user's unread changelog notifications.","operationId":"list_changelog_notifications_api_1_0_misc_changelog_notification_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ChangelogNotificationSchema"},"type":"array","title":"Response List Changelog Notifications Api 1 0 Misc Changelog Notification Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/1.0/misc/changelog_notification/{changelog_id}/read":{"delete":{"tags":["misc"],"summary":"Mark Changelog Notification Read","description":"Mark a changelog notification as read for the current user.","operationId":"mark_changelog_notification_read_api_1_0_misc_changelog_notification__changelog_id__read_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"changelog_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Changelog Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/asana":{"get":{"tags":["service_hooks"],"summary":"Get Asana","description":"Returns the app's Asana hook, or a null-heavy shell (200, not 404) if none exists.\nDeliberate divergence from Flask (design spec §4): Flask's own Asana.get returns bare None on\nno-hook, and its @api.response(AsanaSchema()) wrapper turns that into an unhandled 500 (the same\nFlask framework bug found for Trello/Sentry/Notion/GitHub) -- this port returns a clean shell.","operationId":"get_asana_api_1_0_service_hooks__team_id__app__app_id__asana_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsanaSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Asana","description":"Starts the Asana OAuth flow: generates a PKCE code_verifier + its code_challenge, plus a\nstate, stores a new PENDING (inactive) row, and returns {code_challenge, state} for the frontend\nto round-trip through Asana's OAuth redirect. Always creates a brand-new row -- no lookup, no\nreactivate check (design spec §5.1). Flask itself has no such check here.","operationId":"create_asana_api_1_0_service_hooks__team_id__app__app_id__asana_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartAsanaIntegrationParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartAsanaIntegrationSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Asana","description":"Patches project_id/section_id/automatic_forward/integration_layout. `/integration_id` is\naccepted but is a pure no-op -- no lookup, no credential copy; same standing decision as every\nprior tier's patch handler (design spec §5.4). Flask's own Asana.patch shares the identical\nPATCH-500-on-missing-`/integration_id` bug as Trello/ClickUp/GitHub (confirmed, §7.15) -- this\nport's no-op avoids it.","operationId":"patch_asana_api_1_0_service_hooks__team_id__app__app_id__asana_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAsanaBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsanaSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Asana","description":"Soft-deletes the app's Asana hook -- 404 if none exists.","operationId":"delete_asana_api_1_0_service_hooks__team_id__app__app_id__asana_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/asana/activate":{"post":{"tags":["service_hooks"],"summary":"Activate Asana","description":"Completes the Asana OAuth flow. Team-scoped, NOT app-scoped -- Flask's own route has no\napp_id segment at all (design spec §5.2), same shape as Notion/GitHub's activate; looks the\npending row up by its unique `state` (including soft-deleted rows). Exchanges the code (with the\nPKCE code_verifier) for a refresh_token -- there is no access_token to store here at all.","operationId":"activate_asana_api_1_0_service_hooks__team_id__asana_activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateAsanaIntegrationParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsanaSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/asana/integrate":{"post":{"tags":["service_hooks"],"summary":"Integrate Asana","description":"Completes the connection by selecting a project (and optionally a section). 404 if no Asana\nhook exists for the app yet. Flask's own IntegrateAsanaParameters also declares an unused\n`integration_id` field -- IntegrateAsanaParams simply omits it, same treatment as every prior\ntier.","operationId":"integrate_asana_api_1_0_service_hooks__team_id__app__app_id__asana_integrate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrateAsanaParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsanaSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/projects/asana":{"get":{"tags":["service_hooks"],"summary":"Get Asana Projects","description":"Lists the connected Asana account's workspaces, each with its projects and sections (3-level\nnesting). Deliberately wraps BOTH the token refresh AND fetch_asana_me in one try/except (design\nspec §5.6) -- Flask's real code only wraps the refresh call, so a fetch_asana_me failure 500s in\nreal Flask; this port returns a graceful 403 instead, deactivating the hook either way.","operationId":"get_asana_projects_api_1_0_service_hooks__team_id__app__app_id__projects_asana_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AsanaWorkspaceProjectsSchema"},"title":"Response Get Asana Projects Api 1 0 Service Hooks  Team Id  App  App Id  Projects Asana Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/azure":{"get":{"tags":["service_hooks"],"summary":"Get Azure","description":"Returns the app's Azure hook, or a null-heavy shell (200, not 404) if none exists, matching\nevery other integration in this module. A soft-deleted hook is treated as not existing --\nthe default query filter excludes it.","operationId":"get_azure_api_1_0_service_hooks__team_id__app__app_id__azure_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Azure","description":"Connects Azure by storing organization_url/project_name/access_token -- no verification\ncall (verification only happens via GET /projects/azure, added in Task 2). Reactivate-or-\ncreate, looking up the app's Azure row INCLUDING soft-deleted ones, matching Flask's\n`with_deleted()` lookup. Unlike Trello, project_name is NOT reset on reconnect -- Flask's\nreal behavior overwrites all three credential fields together on every connect/reconnect.","operationId":"create_azure_api_1_0_service_hooks__team_id__app__app_id__azure_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAzureParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Azure","description":"Patches organization_url/project_name/access_token/automatic_forward/integration_layout.","operationId":"patch_azure_api_1_0_service_hooks__team_id__app__app_id__azure_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAzureBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Azure","description":"Soft-deletes the hook (active=False), matching every other tier's delete_x.","operationId":"delete_azure_api_1_0_service_hooks__team_id__app__app_id__azure_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/projects/azure":{"get":{"tags":["service_hooks"],"summary":"Get Azure Projects","description":"Lists the connected Azure DevOps organization's projects, for project selection in the\ndashboard. This is the ONLY place Azure credentials are ever verified. Three-way error\nhandling (design spec, Divergences): 401/403 -> deactivate + 403; other non-2xx -> 403, no\ndeactivation; any other exception -> deactivate + 403 (a catch-all Flask's own code is\nmissing, added here per developer decision 2026-08-22).","operationId":"get_azure_projects_api_1_0_service_hooks__team_id__app__app_id__projects_azure_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AzureWorkspaceSchema"},"title":"Response Get Azure Projects Api 1 0 Service Hooks  Team Id  App  App Id  Projects Azure Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Connect Azure Project","description":"Connects a specific Azure DevOps project by name (Flask's real `key` here IS the project\nname, not a GUID -- see design spec's Divergences section). 404 if no Azure hook exists yet\n(Flask's real status code for this specific gap, unlike Jira's 403).","operationId":"connect_azure_project_api_1_0_service_hooks__team_id__app__app_id__projects_azure_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectAzureProjectParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/clickup/activate":{"post":{"tags":["service_hooks"],"summary":"Activate Clickup","description":"Connects ClickUp: exchanges authorization_code for an access_token, then bulk-deactivates any\npreviously-active integration for the app and creates a brand-new row -- deactivate-then-create,\nsame shape as Sentry's activate (Tier 4), NOT Trello's reactivate-in-place. client_secret is\nShake's own platform-wide CLICKUP_CLIENT_SECRET, never client-supplied. Single exception branch --\nunlike Sentry/Asana's activate, Flask's confirm_clickup_authorization_code only ever raises a bare\nException, never ClickupIntegrationException, so there is no known-vs-unknown split here.","operationId":"activate_clickup_api_1_0_service_hooks__team_id__app__app_id__clickup_activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateClickupParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickupSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/clickup/integrate":{"post":{"tags":["service_hooks"],"summary":"Integrate Clickup","description":"Sets list_id/space_id/automatic_forward on an already-activated hook. 404 if no ClickUp\nintegration exists for the app yet (POST /clickup/activate first). Flask's own\nIntegrateClickupParameters also declares an unused `integration_id` field -- IntegrateClickupParams\nsimply omits it, same treatment as Trello's IntegrateTrelloParams.","operationId":"integrate_clickup_api_1_0_service_hooks__team_id__app__app_id__clickup_integrate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrateClickupParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickupSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/clickup":{"patch":{"tags":["service_hooks"],"summary":"Patch Clickup","description":"Patches list_id/space_id/automatic_forward/integration_layout. `/integration_id` is accepted\nbut is a pure no-op -- no lookup, no credential copy; same standing decision as Trello's\npatch_trello (design spec §5.3) for the vestigial cross-app credential-copy field.","operationId":"patch_clickup_api_1_0_service_hooks__team_id__app__app_id__clickup_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchClickupBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickupSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Clickup","description":"Soft-deletes the app's ClickUp hook -- 404 if none exists.","operationId":"delete_clickup_api_1_0_service_hooks__team_id__app__app_id__clickup_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/projects/clickup":{"get":{"tags":["service_hooks"],"summary":"Get Clickup Projects","description":"Lists the connected ClickUp account's teams/spaces/folders/lists. Uses the raw access_token as\nthe Authorization header value -- NO \"Bearer \" prefix, unlike every other integration in this\nmodule (design spec §5.5). Two try blocks with DIFFERENT exception handling, ported exactly from\nFlask's ClickupProjects.get: the first (fetching teams) deactivates the hook on any unexpected\nexception; the second (the nested spaces/folders loop) only catches ClickupIntegrationException\nand never deactivates. Flask's own final list comprehension has a filter condition\n(`if len(clickup_projects.items()) > 0`) that is unconditionally true whenever the loop runs at\nall -- a dead/no-op guard, not reproduced here since it has zero behavioral effect.","operationId":"get_clickup_projects_api_1_0_service_hooks__team_id__app__app_id__projects_clickup_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClickupTeamSchema"},"title":"Response Get Clickup Projects Api 1 0 Service Hooks  Team Id  App  App Id  Projects Clickup Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/github":{"get":{"tags":["service_hooks"],"summary":"Get Github","description":"Returns the app's GitHub hook, or a null-heavy shell (200, not 404) if none exists.\nDeliberate divergence from Flask (design spec §4): Flask's own Github.get returns bare None on\nno-hook, and its @api.response(GithubSchema()) wrapper turns that into an unhandled 500 (the\nsame Flask framework bug found for Trello/Sentry/Notion) -- this port returns a clean shell\ninstead.","operationId":"get_github_api_1_0_service_hooks__team_id__app__app_id__github_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Github","description":"Starts the GitHub OAuth flow: generates a state, stores a new PENDING (inactive) row, and\nreturns the state for the frontend to round-trip through GitHub's OAuth redirect. Always creates\na brand-new row -- no lookup, no reactivate check (design spec §5.1), same shape as Notion's\nstart. Flask itself has no such check here; repeated start-without-activate cycles can leave\nmultiple abandoned pending rows for the same app. Do not add a lookup/reactivate step Flask\ndoesn't have.","operationId":"create_github_api_1_0_service_hooks__team_id__app__app_id__github_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartGithubIntegrationParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartGithubIntegrationSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Github","description":"Patches repository_id/automatic_forward/integration_layout. `/integration_id` is accepted but\nis a pure no-op -- no lookup, no credential copy; same standing decision as every prior tier's\npatch handler (design spec §5.4).","operationId":"patch_github_api_1_0_service_hooks__team_id__app__app_id__github_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchGithubBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Github","description":"Soft-deletes the app's GitHub hook -- 404 if none exists.","operationId":"delete_github_api_1_0_service_hooks__team_id__app__app_id__github_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/github/activate":{"post":{"tags":["service_hooks"],"summary":"Activate Github","description":"Completes the GitHub OAuth flow. Team-scoped, NOT app-scoped -- Flask's own route has no\napp_id segment at all (design spec §5.2), same shape as Notion's activate; looks the pending row\nup by its unique `state` (including soft-deleted rows), so the app is derived from the row\nitself, not from the URL. Bulk-deactivates every Github row for the SAME app (the row's own\napp_id) before activating this one -- verified against Flask that this has NO active==True\nfilter (Global Constraints).","operationId":"activate_github_api_1_0_service_hooks__team_id__github_activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateGithubIntegrationParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/github/integrate":{"post":{"tags":["service_hooks"],"summary":"Integrate Github","description":"Completes the connection by selecting a repository. 403 with NO detail message if no Github\nhook exists for the app yet -- verified directly against Flask (`abort(code=HTTPStatus.\nFORBIDDEN)`, no message), unlike Notion's 404-with-message (Global Constraints). Flask's own\nIntegrateGithubParameters also declares an unused `integration_id` field -- IntegrateGithubParams\nsimply omits it, same treatment as Trello/ClickUp/Notion.","operationId":"integrate_github_api_1_0_service_hooks__team_id__app__app_id__github_integrate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrateGithubParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GithubSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/projects/github":{"get":{"tags":["service_hooks"],"summary":"Get Github Projects","description":"Lists the connected GitHub account's repositories via a hand-rolled GraphQL call (sgqlc is\nnot available in fastapp/venv -- design spec §5.6). On a GraphQL error, raises a 403 with NO\ndeactivation -- verified directly against Flask's GithubProjects.get, which does not deactivate\nhere (contrast with sibling tiers that do deactivate on their own projects endpoints; each\nintegration's own Flask structure governs, not a module-wide convention).","operationId":"get_github_projects_api_1_0_service_hooks__team_id__app__app_id__projects_github_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"next_page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GitHubProjectSchema"},"title":"Response Get Github Projects Api 1 0 Service Hooks  Team Id  App  App Id  Projects Github Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}":{"get":{"tags":["service_hooks"],"summary":"List Service Hooks","description":"List all service hooks connected to an app, via the `vw_service_hooks` view (unions all\napp_id-scoped `ServiceHook` subclasses -- `Sentry` is team-scoped and not part of this view).\nAuth matches Flask's `OwnerOrUserTypePermission(roles=[UserType.USER_MANAGER], obj=app)`'s\ndominant clause (any team member with app access) via `resolve_app_context` -- the role-bitmask\nOR-bypass branch is the already-documented, accepted `project_fastapi_dashboard_auth_gaps` gap,\nnot implemented here (design spec §2).","operationId":"list_service_hooks_api_1_0_service_hooks__team_id__app__app_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServiceHookListSchema"},"title":"Response List Service Hooks Api 1 0 Service Hooks  Team Id  App  App Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/integration-layout/metadata-keys":{"get":{"tags":["service_hooks"],"summary":"Get Integration Layout Metadata Keys","description":"Available metadata keys for the `ticket_metadata` / `app_user_metadata` integration-layout\nfields. Both sampled from Postgres rather than Flask's Issue-side Elasticsearch aggregation --\ndesign spec §1.2.","operationId":"get_integration_layout_metadata_keys_api_1_0_service_hooks__team_id__app__app_id__integration_layout_metadata_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataKeysSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/jira":{"get":{"tags":["service_hooks"],"summary":"Get Jira","operationId":"get_jira_api_1_0_service_hooks__team_id__app__app_id__jira_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JiraSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Jira","description":"Starts the Jira OAuth flow. client_secret falls back to settings.JIRA_CLIENT_SECRET when\nomitted (self-hosted installs bring their own registered OAuth app secret). Exact-parity\ndetail: Flask strips exactly one trailing slash off server_url, not all of them.","operationId":"create_jira_api_1_0_service_hooks__team_id__app__app_id__jira_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJiraParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartJiraIntegrationSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Jira","description":"Flask's real Jira.patch makes no external calls at all -- just a field loop over\nproject_id/automatic_forward/integration_layout. No PATCH-500 bug here either -- confirmed\ndirectly against Flask's real PatchJiraParameters: no /integration_id in PATH_CHOICES.","operationId":"patch_jira_api_1_0_service_hooks__team_id__app__app_id__jira_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchJiraBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JiraSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Jira","operationId":"delete_jira_api_1_0_service_hooks__team_id__app__app_id__jira_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/jira/activate":{"post":{"tags":["service_hooks"],"summary":"Activate Jira","description":"Completes the Jira OAuth flow. Team-scoped, matching every prior tier's activate shape.\nBefore bulk-deactivating other same-app Jira rows, best-effort deletes any of their live\nJiraWebhook subscriptions first (developer-approved, matching the Linear precedent -- Flask\nitself doesn't do this).","operationId":"activate_jira_api_1_0_service_hooks__team_id__jira_activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateJiraIntegrationParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JiraSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/projects/jira":{"get":{"tags":["service_hooks"],"summary":"Get Jira Projects","description":"Lists the connected Jira instance's projects. Fix (developer-approved): the re-auth guard\nwraps the real fetch_jira_projects call, not a dead SDK-construction step like Flask's real\nGET /projects/jira does (Flask's guard sits around a JIRA(validate=False) constructor that\nnever touches the network, so an expired token 500s there instead of hitting the intended\n403 + auto-deactivate).","operationId":"get_jira_projects_api_1_0_service_hooks__team_id__app__app_id__projects_jira_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/JiraWorkspaceSchema"},"title":"Response Get Jira Projects Api 1 0 Service Hooks  Team Id  App  App Id  Projects Jira Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Connect Jira Project","description":"Connects a Jira project to the app, optionally syncing field mappings (synchronous, no\nCelery -- matches Flask's own plain function call exactly, including that a field-mapping-sync\nfailure propagates as an unhandled error rather than being caught, unlike the two-way-sync\ntoggle below) and toggling the two-way-sync webhook. Drops the request's unused\nintegration_id/app_id fields -- Flask's own handler body never reads either.","operationId":"connect_jira_project_api_1_0_service_hooks__team_id__app__app_id__projects_jira_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectJiraProjectParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JiraSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/jira_webhook/{jira_id}":{"post":{"tags":["service_hooks"],"summary":"Jira Webhook Receiver","description":"Jira two-way-sync webhook: forwards inbound Jira issue/comment events to the matching Shake\nissue. Public and unauthenticated at the FastAPI level -- gated only by the `?key=` secret\nthat was baked into the webhook URL at registration time, matching Flask's JiraWebhook.post\nexactly. Note Flask does NOT scope the secret lookup by jira_id: the path parameter is only an\nexistence check, and every JiraWebhook row sharing that secret is dispatched. Preserved.","operationId":"jira_webhook_receiver_api_1_0_service_hooks_jira_webhook__jira_id__post","parameters":[{"name":"jira_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Jira Id"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/linear":{"get":{"tags":["service_hooks"],"summary":"Get Linear","operationId":"get_linear_api_1_0_service_hooks__team_id__app__app_id__linear_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Linear","description":"Starts the Linear OAuth flow: plain code-flow start, no PKCE (only Asana's tier uses it in\nthis migration). Always creates a brand-new row -- no lookup, no reactivate check, matching\nFlask exactly.","operationId":"create_linear_api_1_0_service_hooks__team_id__app__app_id__linear_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartLinearIntegrationParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartLinearIntegrationSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Linear","description":"Patches automatic_forward/linear_project_id/linear_team_id/integration_layout, and toggles\nthe webhook via the virtual `/webhook` boolean path (not a real column). No PATCH-500 bug exists\nhere -- confirmed directly against Flask's real PatchLinearParameters, which has no\n`/integration_id` path at all.","operationId":"patch_linear_api_1_0_service_hooks__team_id__app__app_id__linear_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchLinearBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Linear","operationId":"delete_linear_api_1_0_service_hooks__team_id__app__app_id__linear_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/linear/activate":{"post":{"tags":["service_hooks"],"summary":"Activate Linear","description":"Completes the Linear OAuth flow. Team-scoped, matching Notion/GitHub/Asana's activate shape.\nBefore touching this integration's own row, best-effort cleans up any OTHER Linear integration\nfor the same app that still has a live webhook -- cross-integration API cleanup during\nactivation, new to this tier.","operationId":"activate_linear_api_1_0_service_hooks__team_id__linear_activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateLinearIntegrationParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/linear/integrate":{"post":{"tags":["service_hooks"],"summary":"Integrate Linear","description":"Attaches team/project to an already-connected Linear hook. Fixes two real Flask bugs (see\nGlobal Constraints): create_linear_webhook's single-value return is no longer unpacked as a\n2-tuple, and delete_linear_webhook is called with hook.webhook_id, not the model object.","operationId":"integrate_linear_api_1_0_service_hooks__team_id__app__app_id__linear_integrate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrateLinearParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/projects/linear":{"get":{"tags":["service_hooks"],"summary":"Get Linear Projects","description":"Lists the connected Linear account's teams, each with its projects. Distinguishes\nLinearAPIError (403 with its message) from any other exception (log + generic 403) -- the one\nplace Flask itself makes that distinction.","operationId":"get_linear_projects_api_1_0_service_hooks__team_id__app__app_id__projects_linear_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"next_page","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearProjectsSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/linear_webhook/{linear_id}":{"post":{"tags":["service_hooks"],"summary":"Linear Webhook Receiver","description":"Linear webhook: applies inbound Issue/Comment events to the matching Shake issue. Public,\nunauthenticated at the FastAPI level -- gated by a per-hook HMAC signature (keyed by that\nspecific Linear row's own webhook_secret), matching Flask's LinearWebhook.post exactly.","operationId":"linear_webhook_receiver_api_1_0_service_hooks_linear_webhook__linear_id__post","parameters":[{"name":"linear_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Linear Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/notion":{"get":{"tags":["service_hooks"],"summary":"Get Notion","description":"Returns the app's Notion hook, or a null-heavy shell (200, not 404) if none exists.\nDeliberate divergence from Flask (design spec §4): Flask's own Notion.get returns bare None on\nno-hook, and its @api.response(NotionSchema()) wrapper turns that into an unhandled 500 (the\nsame Flask framework bug found for Trello/Sentry) -- this port returns a clean shell instead.","operationId":"get_notion_api_1_0_service_hooks__team_id__app__app_id__notion_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Notion","description":"Starts the Notion OAuth flow: generates a state, stores a new PENDING (inactive) row, and\nreturns the state for the frontend to round-trip through Notion's OAuth redirect. Always creates\na brand-new row -- no lookup, no reactivate check (design spec §5.1). Flask itself has no such\ncheck here; repeated start-without-activate cycles can leave multiple abandoned pending rows for\nthe same app. Do not add a lookup/reactivate step Flask doesn't have.","operationId":"create_notion_api_1_0_service_hooks__team_id__app__app_id__notion_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartNotionParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartNotionSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Notion","description":"Patches database_id/automatic_forward/integration_layout. `/integration_id` is accepted but\nis a pure no-op -- no lookup, no credential copy; same standing decision as Trello/ClickUp's\npatch handlers (design spec §5.4).","operationId":"patch_notion_api_1_0_service_hooks__team_id__app__app_id__notion_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchNotionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Notion","description":"Soft-deletes the app's Notion hook -- 404 if none exists.","operationId":"delete_notion_api_1_0_service_hooks__team_id__app__app_id__notion_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/notion/activate":{"post":{"tags":["service_hooks"],"summary":"Activate Notion","description":"Completes the Notion OAuth flow. Team-scoped, NOT app-scoped -- Flask's own route has no\napp_id segment at all (design spec §5.2); looks the pending row up by its unique `state`\n(including soft-deleted rows), so the app is derived from the row itself, not from the URL.\nExchanges the code via HTTP Basic Auth. Bulk-deactivates any other active Notion row for the\nSAME app (the row's own app_id) before activating this one.","operationId":"activate_notion_api_1_0_service_hooks__team_id__notion_activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateNotionParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/notion/integrate":{"post":{"tags":["service_hooks"],"summary":"Integrate Notion","description":"Completes the connection by selecting a database. 404 if no Notion hook exists for the app\nyet. Flask's own IntegrateNotionParameters also declares an unused `integration_id` field --\nIntegrateNotionParams simply omits it, same treatment as Trello/ClickUp.","operationId":"integrate_notion_api_1_0_service_hooks__team_id__app__app_id__notion_integrate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrateNotionParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/projects/notion":{"get":{"tags":["service_hooks"],"summary":"Get Notion Projects","description":"Lists the connected Notion workspace's databases. Single try/except (design spec §5.6) --\nmatches Flask's ONE try block with two branches: a known NotionIntegrationException surfaces its\nreal text (no deactivation); anything else deactivates the hook and raises a generic 403. This is\nTrello's board-listing shape, NOT ClickUp's two-separate-blocks shape -- each integration's own\nFlask structure governs, not a module-wide convention.","operationId":"get_notion_projects_api_1_0_service_hooks__team_id__app__app_id__projects_notion_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NotionDatabaseSchema"},"title":"Response Get Notion Projects Api 1 0 Service Hooks  Team Id  App  App Id  Projects Notion Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/sentry":{"get":{"tags":["service_hooks"],"summary":"Get Sentry","description":"Returns the team's active Sentry integration, or a null-heavy shell (200, not 404) if none\nexists. Deliberate divergence from Flask (design spec §4): Flask's own Sentry.get returns bare\nNone on no-integration, and its @api.response(SentrySchema()) wrapper turns that into an\nunhandled 500 (the same Flask framework bug found for Trello's GET /trello, Tier 3) -- this port\nreturns a clean shell instead, matching that precedent.","operationId":"get_sentry_api_1_0_service_hooks__team_id__sentry_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/src__modules__service_hooks__schemas__SentrySchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Sentry","description":"Soft-deletes the team's active Sentry integration -- 404 if none exists. Unlike GET, Flask's\nDELETE has no shell-vs-500 bug here; it 404s cleanly.","operationId":"delete_sentry_api_1_0_service_hooks__team_id__sentry_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/sentry/activate":{"post":{"tags":["service_hooks"],"summary":"Activate Sentry","description":"Connects Sentry: exchanges the authorization_code for tokens, validates the installation,\nthen bulk-deactivates any previously-active integration for the team and creates a brand-new\nrow -- deactivate-then-create, NOT reactivate-in-place (design spec §6.3, a different shape from\nTrello's POST). client_secret is Shake's own platform-wide SENTRY_CLIENT_SECRET, never\nclient-supplied.","operationId":"activate_sentry_api_1_0_service_hooks__team_id__sentry_activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateSentryParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/src__modules__service_hooks__schemas__SentrySchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/sentry/projects":{"get":{"tags":["service_hooks"],"summary":"List Sentry Projects","description":"Lists Sentry projects for the team's connected organization. 404 if no active integration\nexists (Flask 404s cleanly here, unlike GET /sentry). Matches Flask's two-branch exception\nhandling exactly (design spec §6.4): a known SentryIntegrationException (non-200 from Sentry)\nsurfaces its real text; anything else gets a generic message. NEITHER branch deactivates the\nintegration -- unlike Trello's board-listing endpoint (Tier 3), Flask never deactivates Sentry on\na projects-listing failure. Do not port that deactivation behavior here.","operationId":"list_sentry_projects_api_1_0_service_hooks__team_id__sentry_projects_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SentryProjectSchema"},"title":"Response List Sentry Projects Api 1 0 Service Hooks  Team Id  Sentry Projects Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/apps/{app_id}/issues/{issue_id}/sentry/issues":{"get":{"tags":["service_hooks"],"summary":"List Sentry Issues","description":"Finds Sentry issues matching a Shake issue's report time, for cross-referencing. App-scoped\n(unlike the other 3 Sentry endpoints) -- reuses resolve_app_context + the existing resolve_issue\nhelper directly, no new resolver needed. Only ONE exception branch in Flask (design spec §6.5) --\na deliberate asymmetry with list_sentry_projects's two-branch handling, NOT something to\nhomogenize. 404 if the app's team has no active Sentry integration.","operationId":"list_sentry_issues_api_1_0_service_hooks__team_id__apps__app_id__issues__issue_id__sentry_issues_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}},{"name":"project_slug","in":"query","required":true,"schema":{"type":"string","title":"Project Slug"}},{"name":"environment","in":"query","required":true,"schema":{"type":"string","title":"Environment"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SentryIssuesSchema"},"title":"Response List Sentry Issues Api 1 0 Service Hooks  Team Id  Apps  App Id  Issues  Issue Id  Sentry Issues Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/sentry_webhook":{"post":{"tags":["service_hooks"],"summary":"Sentry Webhook Receiver","description":"Sentry webhook: deactivates a Sentry integration when its installation is deleted.\nPublic, unauthenticated at the FastAPI level -- gated entirely by the HMAC signature below,\nmatching Flask's SentryWebhook.post exactly. No team/app scoping in the URL: the payload\nitself carries the installation UUID the task uses to find the right row.","operationId":"sentry_webhook_receiver_api_1_0_service_hooks_sentry_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/slack":{"get":{"tags":["service_hooks"],"summary":"Get Slack","description":"Returns the app's Slack hook, or a null-heavy shell (200, not 404) if none exists --\nmatches Flask exactly (design spec §2).","operationId":"get_slack_api_1_0_service_hooks__team_id__app__app_id__slack_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Slack","description":"Creates a Slack hook after synchronously verifying the webhook_url. 409 if one already\nexists; 403 (with the real upstream error text) if verification fails -- matches Flask.","operationId":"create_slack_api_1_0_service_hooks__team_id__app__app_id__slack_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSlackParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Slack","description":"Patches Slack hook fields. Sanitizes `integration_layout` if present in the patch, matching\nFlask's inline `layout.validate_and_sanitize_layout` call. No re-verification after patching --\nmatches Flask (design spec §3.1, an asymmetry with Zapier that's intentional, not a bug).","operationId":"patch_slack_api_1_0_service_hooks__team_id__app__app_id__slack_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchSlackBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Slack","operationId":"delete_slack_api_1_0_service_hooks__team_id__app__app_id__slack_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/trello":{"get":{"tags":["service_hooks"],"summary":"Get Trello","description":"Returns the app's Trello hook, or a null-heavy shell (200, not 404) if none exists.\nDeliberate divergence from Flask (design spec §3.1): Flask's own Trello.get returns bare None\non no-hook, and its @api.response(TrelloSchema()) wrapper turns that into an unhandled 500 (a\nFlask bug, not intentional behavior) -- this port returns a clean shell instead, matching every\nother integration in this module, per developer decision 2026-08-20. A soft-deleted hook (see\ndelete_trello) is treated as not existing here -- the default query filter excludes it.","operationId":"get_trello_api_1_0_service_hooks__team_id__app__app_id__trello_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrelloSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Trello","description":"Connects Trello by storing api_key/api_token -- no verification call (design spec §3.3;\nverification only ever happens via GET /projects/trello, added in Task 2). Reactivate-or-create,\nNOT 409-on-exists: looks up the app's Trello row INCLUDING soft-deleted ones. If one exists\n(active or not), it's reactivated with the new credentials and board_id/list_id are reset to\nNone, forcing re-selection -- matches Flask's `with_deleted()` lookup exactly, a deliberate\ndivergence from Slack/Zapier/Webhook's 409-on-exists behavior.","operationId":"create_trello_api_1_0_service_hooks__team_id__app__app_id__trello_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrelloParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrelloSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Trello","description":"Patches board_id/list_id/automatic_forward/integration_layout. `/integration_id` is accepted\n(the current dashboard always sends it) but is a pure no-op -- no lookup, no credential copy;\nsee design spec §3.4 for why the equivalent Flask mechanism isn't ported.","operationId":"patch_trello_api_1_0_service_hooks__team_id__app__app_id__trello_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchTrelloBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrelloSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Trello","description":"Soft-deletes the hook (active=False) -- unlike Slack/Zapier/Webhook's hard delete, this is\nwhat makes create_trello's reactivate-on-reconnect path reachable.","operationId":"delete_trello_api_1_0_service_hooks__team_id__app__app_id__trello_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/trello/integrate":{"post":{"tags":["service_hooks"],"summary":"Integrate Trello","description":"Finishes an already-connected hook by setting board_id/list_id/automatic_forward -- 403 if\ncredentials haven't been connected yet (POST /trello first). Flask's IntegrateTrelloParameters\nalso declares an `integration_id` field that the handler never reads (a separate dead parameter,\nunrelated to the PATCH /integration_id mechanism in patch_trello) -- IntegrateTrelloParams\nsimply omits the field; Pydantic's default extra='ignore' means the dashboard can keep sending\nit with zero special-casing.","operationId":"integrate_trello_api_1_0_service_hooks__team_id__app__app_id__trello_integrate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrateTrelloParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrelloSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/projects/trello":{"get":{"tags":["service_hooks"],"summary":"Get Trello Projects","description":"Lists the connected Trello account's open boards/lists, for board/list selection in the\ndashboard. This is the ONLY place Trello credentials are ever verified (design spec §3.2).\nMatches Flask's two-branch exception handling: a non-200 from either Trello API call\n(TrelloIntegrationException) is a KNOWN error -- 403 with the real error text, hook stays\nactive. Any other exception (timeout, connection error, malformed response) is UNEXPECTED --\ndeactivates the hook and raises a generic 403.","operationId":"get_trello_projects_api_1_0_service_hooks__team_id__app__app_id__projects_trello_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TrelloUserBoardsSchema"},"title":"Response Get Trello Projects Api 1 0 Service Hooks  Team Id  App  App Id  Projects Trello Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/zapier":{"get":{"tags":["service_hooks"],"summary":"Get Zapier","description":"Returns the app's Zapier hook, or a null shell (200, not 404) if none exists. Unlike Slack,\n`integration_layout` on the shell is also null -- Zapier has no computed-layout override, just\nthe raw (unset, on the shell) column value (design spec §3.2).","operationId":"get_zapier_api_1_0_service_hooks__team_id__app__app_id__zapier_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZapierSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Zapier","description":"Creates a Zapier hook after synchronously verifying the webhook_url. 409 if one already\nexists; 403 with a generic message (never the real upstream error) if verification fails --\nmatches Flask, deliberately asymmetric with Slack's more detailed error (design spec §3.2).","operationId":"create_zapier_api_1_0_service_hooks__team_id__app__app_id__zapier_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateZapierParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZapierSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Zapier","description":"Patches Zapier hook fields, then re-verifies the (possibly new) webhook_url. FIX (developer-\nconfirmed, design spec §3.2): Flask's equivalent check (`if send_test_data() is False`) can\nnever fire, since that method only ever raises or returns None -- a real verification failure\nduring PATCH propagates unhandled in Flask today. Here it's caught properly and turned into a\n403, matching what POST already does correctly. The candidate webhook_url is verified BEFORE\nany attribute is written onto the persistent `hook` -- not because a mid-request failure would\notherwise corrupt production data (`AsyncSessionDep` rolls back automatically on any propagating\nexception, and `autoflush=False` means nothing reaches the DB before an explicit commit either\nway, so mutate-then-verify would have been just as production-safe), but because the test\nharness's shared-session identity map would otherwise leave a mutated-but-uncommitted `hook`\nvisible to assertions made later in the same test, even after the request raised.","operationId":"patch_zapier_api_1_0_service_hooks__team_id__app__app_id__zapier_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchZapierBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZapierSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Zapier","operationId":"delete_zapier_api_1_0_service_hooks__team_id__app__app_id__zapier_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/service_hooks/{team_id}/app/{app_id}/webhook":{"get":{"tags":["service_hooks"],"summary":"Get Webhook","operationId":"get_webhook_api_1_0_service_hooks__team_id__app__app_id__webhook_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["service_hooks"],"summary":"Create Webhook","description":"Creates a generic webhook hook. No verification ping at all -- unlike Slack/Zapier, matches\nFlask exactly (design spec §3.3). `webhook_secret` is server-generated, never client-supplied.","operationId":"create_webhook_api_1_0_service_hooks__team_id__app__app_id__webhook_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["service_hooks"],"summary":"Patch Webhook","operationId":"patch_webhook_api_1_0_service_hooks__team_id__app__app_id__webhook_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchWebhookBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["service_hooks"],"summary":"Delete Webhook","operationId":"delete_webhook_api_1_0_service_hooks__team_id__app__app_id__webhook_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/platforms":{"get":{"tags":["Issue Tracking - Platforms"],"summary":"Get Platforms","description":"List active platforms (cached 1h; invalidated by the Bitrise update webhook).","operationId":"get_platforms_api_1_0_issue_tracking_platforms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PlatformSchema"},"title":"Response Get Platforms Api 1 0 Issue Tracking Platforms Get"}}}}}},"post":{"tags":["Issue Tracking - Platforms"],"summary":"Update Platform","description":"Update platform latest version via Bitrise webhook token.","operationId":"update_platform_api_1_0_issue_tracking_platforms_post","parameters":[{"name":"BITRISE_TOKEN","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bitrise Token"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePlatformParams"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps":{"get":{"tags":["Issue Tracking - Apps"],"summary":"Get Apps","description":"Get apps by team ID visible to the current user.","operationId":"get_apps_api_1_0_issue_tracking__team_id__apps_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"return_all","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Return All"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppWithIntegrationsSchema"},"title":"Response Get Apps Api 1 0 Issue Tracking  Team Id  Apps Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Issue Tracking - Apps"],"summary":"Create App","description":"Create a new app inside a team.","operationId":"create_app_api_1_0_issue_tracking__team_id__apps_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAppDashboardParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppWithIntegrationsSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/approve":{"post":{"tags":["Issue Tracking - Apps"],"summary":"Approve App","description":"Approve an app.","operationId":"approve_app_api_1_0_issue_tracking__team_id__apps__app_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveAppParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppWithIntegrationsSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}":{"get":{"tags":["Issue Tracking - Apps"],"summary":"Get App","description":"Get app details by ID.","operationId":"get_app_api_1_0_issue_tracking__team_id__apps__app_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppWithIntegrationsSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Issue Tracking - Apps"],"summary":"Patch App","description":"Patch app details by ID.","operationId":"patch_app_api_1_0_issue_tracking__team_id__apps__app_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchAppBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppWithIntegrationsSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Issue Tracking - Apps"],"summary":"Delete App","description":"Archive an app by ID.","operationId":"delete_app_api_1_0_issue_tracking__team_id__apps__app_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/discard":{"post":{"tags":["Issue Tracking - Apps"],"summary":"Discard App","description":"Permanently discard an app (active or archived). The app is hidden from the dashboard forever and its bundle ID is freed.","operationId":"discard_app_api_1_0_issue_tracking__team_id__apps__app_id__discard_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/domains/{app_domain_id}":{"delete":{"tags":["Issue Tracking - Apps"],"summary":"Delete App Domain By Legacy Path","description":"Delete app domain (legacy /domains path compatibility).","operationId":"delete_app_domain_by_legacy_path_api_1_0_issue_tracking__team_id__apps__app_id__domains__app_domain_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_domain_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Domain Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/logo":{"post":{"tags":["Issue Tracking - Apps"],"summary":"Upload App Logo","description":"Upload app logo image (jpeg/png).","operationId":"upload_app_logo_api_1_0_issue_tracking__team_id__apps__app_id__logo_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_app_logo_api_1_0_issue_tracking__team_id__apps__app_id__logo_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppWithIntegrationsSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Issue Tracking - Apps"],"summary":"Delete App Logo","description":"Delete app logo.","operationId":"delete_app_logo_api_1_0_issue_tracking__team_id__apps__app_id__logo_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/app_domain":{"get":{"tags":["Issue Tracking - Apps"],"summary":"Get App Domains","description":"Get permitted domains for a web app.","operationId":"get_app_domains_api_1_0_issue_tracking__team_id__apps__app_id__app_domain_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppDomainSchema"},"title":"Response Get App Domains Api 1 0 Issue Tracking  Team Id  Apps  App Id  App Domain Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Issue Tracking - Apps"],"summary":"Create App Domain","description":"Create and send verification for an app domain.","operationId":"create_app_domain_api_1_0_issue_tracking__team_id__apps__app_id__app_domain_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAppDomainParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppDomainSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/apps/app_domain_activation":{"post":{"tags":["Issue Tracking - Apps"],"summary":"Activate App Domain","description":"Verify app domain by emailed activation code.","operationId":"activate_app_domain_api_1_0_issue_tracking_apps_app_domain_activation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateAppDomainCodeParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppDomainSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/app_domain/{app_domain_id}":{"delete":{"tags":["Issue Tracking - Apps"],"summary":"Delete App Domain","description":"Delete an app domain.","operationId":"delete_app_domain_api_1_0_issue_tracking__team_id__apps__app_id__app_domain__app_domain_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_domain_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Domain Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues":{"get":{"tags":["Issue Tracking - Issues"],"summary":"List Issues","description":"Get issues by team and app.","operationId":"list_issues_api_1_0_issue_tracking__team_id__apps__app_id__issues_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"key","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueListInfoSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Issue Tracking - Issues"],"summary":"Create Ticket","description":"Create a new manual issue from dashboard.","operationId":"create_ticket_api_1_0_issue_tracking__team_id__apps__app_id__issues_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTicketParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrettyIssueSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/searchable":{"get":{"tags":["Issue Tracking - Issues"],"summary":"Get Issue Searchable Keys","description":"Return searchable issue metadata and custom field keys, prefixed for the filter grammar.\n\nThe dashboard feeds these strings straight back as a filter's `field_name`, and\n`_condition_for_filter` dispatches metadata/custom-field filters on\n`startswith('metadata_.')` / `startswith('custom_field.')`. A bare key misses both branches and\nfalls through to a term against a top-level field that does not exist -- an empty result rather\nthan an error. Flask emitted the prefix for exactly this reason\n(`Issue.get_searchable_metadata`, flaskapp/app/modules/issue_tracking/models.py:1017).","operationId":"get_issue_searchable_keys_api_1_0_issue_tracking__team_id__apps__app_id__issues_searchable_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchableIssueFieldsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/filter":{"get":{"tags":["Issue Tracking - Issues"],"summary":"Get Issue Filters","description":"Get field values for issue filter dropdowns.","operationId":"get_issue_filters_api_1_0_issue_tracking__team_id__apps__app_id__issues_filter_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"search_field","in":"query","required":true,"schema":{"type":"string","title":"Search Field"}},{"name":"search_text","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Text"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueFilterSchema"},"title":"Response Get Issue Filters Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues Filter Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Issue Tracking - Issues"],"summary":"Filter Issues","description":"Filter issues by the full Flask filter grammar (title/assignee_id/status/priority/tags,\nmetadata_.*/custom_field.*, device/os_version/app_version/current_view/tester_email, unread) —\nresolved via OpenSearch, matching Flask's own approach (get_filtered_issues).","operationId":"filter_issues_api_1_0_issue_tracking__team_id__apps__app_id__issues_filter_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueSearchFilterParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueListInfoSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_key}":{"get":{"tags":["Issue Tracking - Issues"],"summary":"Get Issue","description":"Get issue details by issue key.","operationId":"get_issue_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_key__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_key","in":"path","required":true,"schema":{"type":"integer","title":"Issue Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrettyIssueSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Issue Tracking - Issues"],"summary":"Patch Issue","description":"Patch issue fields by key.","operationId":"patch_issue_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_key__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_key","in":"path","required":true,"schema":{"type":"integer","title":"Issue Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchIssueBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrettyIssueSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Issue Tracking - Issues"],"summary":"Delete Issue","description":"Soft-delete issue by key.","operationId":"delete_issue_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_key__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_key","in":"path","required":true,"schema":{"type":"integer","title":"Issue Key"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_id}/status":{"post":{"tags":["Issue Tracking - Issues"],"summary":"Change Issue Status","description":"Change single issue status.","operationId":"change_issue_status_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeIssueStatusParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueStatusSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/status":{"post":{"tags":["Issue Tracking - Issues"],"summary":"Bulk Change Issue Status","description":"Bulk change issue status.","operationId":"bulk_change_issue_status_api_1_0_issue_tracking__team_id__apps__app_id__issues_status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkChangeIssueStatusParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Change Issue Status Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues Status Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_id}/priority":{"post":{"tags":["Issue Tracking - Issues"],"summary":"Change Issue Priority","description":"Change single issue priority.","operationId":"change_issue_priority_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__priority_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeIssuePriorityParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuePrioritySchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/priority":{"post":{"tags":["Issue Tracking - Issues"],"summary":"Bulk Change Issue Priority","description":"Bulk change issue priority.","operationId":"bulk_change_issue_priority_api_1_0_issue_tracking__team_id__apps__app_id__issues_priority_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkChangeIssuePriorityParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Change Issue Priority Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues Priority Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_id}/assignee":{"post":{"tags":["Issue Tracking - Issues"],"summary":"Change Issue Assignee","description":"Change single issue assignee.","operationId":"change_issue_assignee_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__assignee_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeIssueAssigneeParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueAssigneeSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/assignee":{"post":{"tags":["Issue Tracking - Issues"],"summary":"Bulk Change Issue Assignee","description":"Bulk change issue assignee.","operationId":"bulk_change_issue_assignee_api_1_0_issue_tracking__team_id__apps__app_id__issues_assignee_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkChangeIssueAssigneeParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Change Issue Assignee Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues Assignee Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_key}/log":{"get":{"tags":["Issue Tracking - Issue Details"],"summary":"Get Issue Log","description":"Get issue log by team, app and issue key.","operationId":"get_issue_log_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_key__log_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_key","in":"path","required":true,"schema":{"type":"integer","title":"Issue Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseLogPrettifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_key}/log/download":{"get":{"tags":["Issue Tracking - Issue Details"],"summary":"Download Issue Log","description":"Download issue log as a text file.","operationId":"download_issue_log_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_key__log_download_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_key","in":"path","required":true,"schema":{"type":"integer","title":"Issue Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_id}/blackbox":{"get":{"tags":["Issue Tracking - Issue Details"],"summary":"Get Issue Blackbox","description":"Get issue blackbox by issue ID.","operationId":"get_issue_blackbox_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__blackbox_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueBlackboxSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_id}/service_hooks":{"get":{"tags":["Issue Tracking - Issue Details"],"summary":"Get Issue Service Hooks","description":"Get service hook permalinks for an issue.","operationId":"get_issue_service_hooks_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__service_hooks_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueServiceHookPermalinkSchema"},"title":"Response Get Issue Service Hooks Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues  Issue Id  Service Hooks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_id}/service_hooks/{service_hook_id}/send":{"post":{"tags":["Issue Tracking - Issue Details"],"summary":"Resend Issue To Service Hook","description":"Resend issue to a specific service hook integration.","operationId":"resend_issue_to_service_hook_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__service_hooks__service_hook_id__send_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}},{"name":"service_hook_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Service Hook Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueServiceHookPermalinkSchema"},"title":"Response Resend Issue To Service Hook Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues  Issue Id  Service Hooks  Service Hook Id  Send Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_id}/chat":{"get":{"tags":["Issue Tracking - Issue Details"],"summary":"Get Issue Chat","description":"Get issue chat and activity timeline.","operationId":"get_issue_chat_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__chat_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueChatActivityEventSchema"},"title":"Response Get Issue Chat Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues  Issue Id  Chat Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Issue Tracking - Issue Details"],"summary":"Add Issue Chat Message","description":"Add a new chat message to an issue.","operationId":"add_issue_chat_message_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIssueChatMessageParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueChatActivityEventSchema"},"title":"Response Add Issue Chat Message Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues  Issue Id  Chat Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/chat":{"post":{"tags":["Issue Tracking - Issue Details"],"summary":"Bulk Add Issue Chat Messages","description":"Bulk add a chat message to multiple issues.","operationId":"bulk_add_issue_chat_messages_api_1_0_issue_tracking__team_id__apps__app_id__issues_chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateIssueChatParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Add Issue Chat Messages Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues Chat Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues_chat/{issue_chat_id}":{"patch":{"tags":["Issue Tracking - Issue Details"],"summary":"Patch Issue Chat","description":"Patch a specific issue chat message.","operationId":"patch_issue_chat_api_1_0_issue_tracking__team_id__apps__app_id__issues_chat__issue_chat_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_chat_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Chat Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchIssueChatBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueChatActivityEventSchema"},"title":"Response Patch Issue Chat Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues Chat  Issue Chat Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Issue Tracking - Issue Details"],"summary":"Delete Issue Chat","description":"Soft-delete an issue chat message.","operationId":"delete_issue_chat_api_1_0_issue_tracking__team_id__apps__app_id__issues_chat__issue_chat_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_chat_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Chat Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueChatActivityEventSchema"},"title":"Response Delete Issue Chat Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues Chat  Issue Chat Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/tags":{"get":{"tags":["Issue Tracking - Tags"],"summary":"Search Tags","description":"Search team tags by prefix.","operationId":"search_tags_api_1_0_issue_tracking__team_id__tags_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"tag","in":"query","required":true,"schema":{"type":"string","title":"Tag"}},{"name":"deleted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Deleted"}},{"name":"return_all","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Return All"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagSchema"},"title":"Response Search Tags Api 1 0 Issue Tracking  Team Id  Tags Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Issue Tracking - Tags"],"summary":"Create Tags","description":"Create new tags on a team.","operationId":"create_tags_api_1_0_issue_tracking__team_id__tags_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTagParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagSchema"},"title":"Response Create Tags Api 1 0 Issue Tracking  Team Id  Tags Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/issues/{issue_id}/tag/{tag_name}":{"post":{"tags":["Issue Tracking - Tags"],"summary":"Add Tag To Issue","description":"Add a tag to an issue.","operationId":"add_tag_to_issue_api_1_0_issue_tracking__team_id__issues__issue_id__tag__tag_name__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}},{"name":"tag_name","in":"path","required":true,"schema":{"type":"string","title":"Tag Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagSchema"},"title":"Response Add Tag To Issue Api 1 0 Issue Tracking  Team Id  Issues  Issue Id  Tag  Tag Name  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Issue Tracking - Tags"],"summary":"Remove Tag From Issue","description":"Remove a tag from an issue.","operationId":"remove_tag_from_issue_api_1_0_issue_tracking__team_id__issues__issue_id__tag__tag_name__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}},{"name":"tag_name","in":"path","required":true,"schema":{"type":"string","title":"Tag Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagSchema"},"title":"Response Remove Tag From Issue Api 1 0 Issue Tracking  Team Id  Issues  Issue Id  Tag  Tag Name  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/tag":{"post":{"tags":["Issue Tracking - Tags"],"summary":"Bulk Add Issue Tags","description":"Bulk add tags to issues in an app.","operationId":"bulk_add_issue_tags_api_1_0_issue_tracking__team_id__apps__app_id__issues_tag_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkAddIssueTagsParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Add Issue Tags Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues Tag Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/tags/common":{"get":{"tags":["Issue Tracking - Tags"],"summary":"Get Common Tags","description":"Return common tags within a team.","operationId":"get_common_tags_api_1_0_issue_tracking__team_id__tags_common_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"return_all","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Return All"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagSchema"},"title":"Response Get Common Tags Api 1 0 Issue Tracking  Team Id  Tags Common Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/bulk_delete":{"post":{"tags":["Issue Tracking - Operations"],"summary":"Bulk Delete Issues","description":"Bulk archive issues for an app.","operationId":"bulk_delete_issues_api_1_0_issue_tracking__team_id__apps__app_id__issues_bulk_delete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteIssuesParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Delete Issues Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues Bulk Delete Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/import":{"post":{"tags":["Issue Tracking - Operations"],"summary":"Import Issues From File","description":"Import issues from CSV file.","operationId":"import_issues_from_file_api_1_0_issue_tracking__team_id__apps__app_id__import_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_import_issues_from_file_api_1_0_issue_tracking__team_id__apps__app_id__import_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/export":{"post":{"tags":["Issue Tracking - Operations"],"summary":"Export Issues To File","description":"Start async issue export job.","operationId":"export_issues_to_file_api_1_0_issue_tracking__team_id__apps__app_id__issues_export_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_id}/link":{"get":{"tags":["Issue Tracking - Links"],"summary":"Get Linked Issues","description":"Get linked child issues for the given parent issue.","operationId":"get_linked_issues_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__link_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueListSchema"},"title":"Response Get Linked Issues Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues  Issue Id  Link Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Issue Tracking - Links"],"summary":"Link Issues","description":"Link selected issues under the given parent issue.","operationId":"link_issues_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__link_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkIssuesParams"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Issue Tracking - Links"],"summary":"Unlink Issues","description":"Unlink child issues from the given parent issue.","operationId":"unlink_issues_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__link_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UnlinkIssuesParams"},{"type":"null"}],"title":"Params"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/{team_id}/apps/{app_id}/issues/{issue_id}/more_like_this":{"get":{"tags":["Issue Tracking - Links"],"summary":"Get More Like This Issue","description":"Get one similar issue candidate for the given issue.","operationId":"get_more_like_this_issue_api_1_0_issue_tracking__team_id__apps__app_id__issues__issue_id__more_like_this_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IssueListSchema"},{"type":"null"}],"title":"Response Get More Like This Issue Api 1 0 Issue Tracking  Team Id  Apps  App Id  Issues  Issue Id  More Like This Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/issue_tracking/apps":{"post":{"tags":["Issue Tracking - SDK v1"],"summary":"Approve Sdk App V1","operationId":"approve_sdk_app_v1_api_1_0_issue_tracking_apps_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSdkV1AppParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppMobileSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/1.0/issue_tracking/apps/{bundle_id}":{"post":{"tags":["Issue Tracking - SDK v1"],"summary":"Create Issue V1","operationId":"create_issue_v1_api_1_0_issue_tracking_apps__bundle_id__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"bundle_id","in":"path","required":true,"schema":{"type":"string","title":"Bundle Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSdkV1IssueParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/issue_tracking/issues":{"get":{"tags":["Issue Tracking - Public API"],"summary":"Get Issues","description":"Get paginated issues for API-key authenticated app.","operationId":"get_issues_api_rest_issue_tracking_issues_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueListInfoSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/issue_tracking/issues/{issue_id}":{"get":{"tags":["Issue Tracking - Public API"],"summary":"Get Issue","description":"Get issue by ID for API-key authenticated app.","operationId":"get_issue_api_rest_issue_tracking_issues__issue_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrettyIssueSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Issue Tracking - Public API"],"summary":"Patch Issue","description":"Patch issue fields from public REST API.","operationId":"patch_issue_api_rest_issue_tracking_issues__issue_id__patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPatchIssueBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrettyIssueSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Issue Tracking - Public API"],"summary":"Delete Issue","description":"Soft-delete issue by ID for API-key authenticated app.","operationId":"delete_issue_api_rest_issue_tracking_issues__issue_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/issue_tracking/issues/{issue_id}/chat":{"get":{"tags":["Issue Tracking - Public API"],"summary":"Get Issue Chat","description":"Get issue chat timeline for API-key authenticated app.","operationId":"get_issue_chat_api_rest_issue_tracking_issues__issue_id__chat_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueChatActivityEventSchema"},"title":"Response Get Issue Chat Api Rest Issue Tracking Issues  Issue Id  Chat Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Issue Tracking - Public API"],"summary":"Add Issue Chat","description":"Add issue chat message from public REST API.","operationId":"add_issue_chat_api_rest_issue_tracking_issues__issue_id__chat_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCreateIssueChatMessageParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueChatActivityEventSchema"},"title":"Response Add Issue Chat Api Rest Issue Tracking Issues  Issue Id  Chat Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/issue_tracking/issues/{issue_id}/logs":{"get":{"tags":["Issue Tracking - Public API"],"summary":"Get Issue Logs","description":"Get issue logs for API-key authenticated app.","operationId":"get_issue_logs_api_rest_issue_tracking_issues__issue_id__logs_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseLogPrettifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/issue_tracking/issues/{issue_id}":{"get":{"tags":["Issue Tracking - Public Share"],"summary":"Get Public Issue","description":"Get publicly shared issue by ID.","operationId":"get_public_issue_api_public_issue_tracking_issues__issue_id__get","parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrettyIssueSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/issue_tracking/issues/{issue_id}/log":{"get":{"tags":["Issue Tracking - Public Share"],"summary":"Get Public Issue Log","description":"Get publicly shared issue log.","operationId":"get_public_issue_log_api_public_issue_tracking_issues__issue_id__log_get","parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseLogPrettifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/issue_tracking/issues/{issue_id}/chat":{"get":{"tags":["Issue Tracking - Public Share"],"summary":"Get Public Issue Chat","description":"Get publicly shared issue chat/activity timeline.","operationId":"get_public_issue_chat_api_public_issue_tracking_issues__issue_id__chat_get","parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IssueChatActivityEventSchema"},"title":"Response Get Public Issue Chat Api Public Issue Tracking Issues  Issue Id  Chat Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/issue_tracking/issues/{issue_id}/log/download":{"get":{"tags":["Issue Tracking - Public Share"],"summary":"Download Public Issue Log","description":"Download publicly shared issue log as text.","operationId":"download_public_issue_log_api_public_issue_tracking_issues__issue_id__log_download_get","parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/issue_tracking/issues/{issue_id}/blackbox":{"get":{"tags":["Issue Tracking - Public Share"],"summary":"Get Public Issue Blackbox","description":"Get publicly shared issue blackbox.","operationId":"get_public_issue_blackbox_api_public_issue_tracking_issues__issue_id__blackbox_get","parameters":[{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueBlackboxSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/2.0/issue_tracking/apps":{"get":{"tags":["Issue Tracking - SDK v2"],"summary":"Approve Sdk App V2","operationId":"approve_sdk_app_v2_api_2_0_issue_tracking_apps_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppMobileSchema"}}}}},"security":[{"APIKeyHeader":[]}]},"post":{"tags":["Issue Tracking - SDK v2"],"summary":"Create Issue V2","operationId":"create_issue_v2_api_2_0_issue_tracking_apps_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSdkIssueParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/2.0/ai/description":{"post":{"tags":["ai"],"summary":"Get Description Suggestion","operationId":"get_description_suggestion_api_2_0_ai_description_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityHistoryParameters"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DescriptionSuggestionSchema"},{"type":"null"}],"title":"Response Get Description Suggestion Api 2 0 Ai Description Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/1.0/ai/{team_id}/apps/{app_id}/summary/{issue_id}":{"get":{"tags":["ai"],"summary":"Get Issue Summary","description":"Fetch the AI-generated summary for an issue, or 204 if one hasn't been generated yet.\nAuth is a deliberate hardening relative to Flask's real `IssueSummary` resource, which has no\nteam-membership or app/issue-consistency check at all (see design spec's auth scope decision) --\n`resolve_app_context`/`ensure_issue_exists` enforce both here.","operationId":"get_issue_summary_api_1_0_ai__team_id__apps__app_id__summary__issue_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/IssueSummarySchema"},{"type":"null"}],"title":"Response Get Issue Summary Api 1 0 Ai  Team Id  Apps  App Id  Summary  Issue Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["ai"],"summary":"Create Issue Summary","description":"Kick off AI summary generation for an issue. Idempotent: if a summary row already exists\n(even the placeholder), returns it as-is without re-dispatching -- matches Flask's `if\nissue.issue_summary: return issue.issue_summary` exactly. Same auth as `get_issue_summary`.","operationId":"create_issue_summary_api_1_0_ai__team_id__apps__app_id__summary__issue_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"issue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Issue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueSummarySchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"List Crash Groups","operationId":"list_crash_groups_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"key","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupListInfoSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/{crash_group_key}":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get Crash Group By Key","operationId":"get_crash_group_by_key_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_key__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_key","in":"path","required":true,"schema":{"type":"integer","title":"Crash Group Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Crash Reporting - Dashboard"],"summary":"Patch Crash Group By Key","operationId":"patch_crash_group_by_key_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_key__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_key","in":"path","required":true,"schema":{"type":"integer","title":"Crash Group Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchCrashGroupBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Crash Group By Key Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups  Crash Group Key  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Crash Reporting - Dashboard"],"summary":"Delete Crash Group By Key","operationId":"delete_crash_group_by_key_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_key__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_key","in":"path","required":true,"schema":{"type":"integer","title":"Crash Group Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Crash Group By Key Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups  Crash Group Key  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/{crash_group_id}/status":{"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Change Crash Group Status","operationId":"change_crash_group_status_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_id__status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeCrashGroupStatusParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupStatusSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/status":{"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Bulk Change Crash Group Status","operationId":"bulk_change_crash_group_status_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups_status_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkChangeCrashGroupStatusParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Change Crash Group Status Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups Status Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/{crash_group_id}/priority":{"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Change Crash Group Priority","operationId":"change_crash_group_priority_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_id__priority_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeCrashGroupPriorityParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupPrioritySchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/priority":{"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Bulk Change Crash Group Priority","operationId":"bulk_change_crash_group_priority_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups_priority_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkChangeCrashGroupPriorityParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Change Crash Group Priority Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups Priority Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/{crash_group_id}/assignee":{"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Change Crash Group Assignee","operationId":"change_crash_group_assignee_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_id__assignee_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeCrashGroupAssigneeParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupAssigneeSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/assignee":{"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Bulk Change Crash Group Assignee","operationId":"bulk_change_crash_group_assignee_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups_assignee_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkChangeCrashGroupAssigneeParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Change Crash Group Assignee Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups Assignee Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/{crash_group_id}/activity":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get Crash Group Activity","operationId":"get_crash_group_activity_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_id__activity_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CrashGroupActivitySchema"},"title":"Response Get Crash Group Activity Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups  Crash Group Id  Activity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/crash_groups/{crash_group_id}/tag/{tag_name}":{"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Add Crash Group Tag","operationId":"add_crash_group_tag_api_1_0_crash_reporting__team_id__crash_groups__crash_group_id__tag__tag_name__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}},{"name":"tag_name","in":"path","required":true,"schema":{"type":"string","title":"Tag Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagSchema"},"title":"Response Add Crash Group Tag Api 1 0 Crash Reporting  Team Id  Crash Groups  Crash Group Id  Tag  Tag Name  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Crash Reporting - Dashboard"],"summary":"Delete Crash Group Tag","operationId":"delete_crash_group_tag_api_1_0_crash_reporting__team_id__crash_groups__crash_group_id__tag__tag_name__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}},{"name":"tag_name","in":"path","required":true,"schema":{"type":"string","title":"Tag Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TagSchema"},"title":"Response Delete Crash Group Tag Api 1 0 Crash Reporting  Team Id  Crash Groups  Crash Group Id  Tag  Tag Name  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/tag":{"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Bulk Add Crash Group Tags","operationId":"bulk_add_crash_group_tags_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups_tag_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkAddCrashGroupTagsParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Add Crash Group Tags Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups Tag Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/bulk_delete":{"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Bulk Delete Crash Groups","operationId":"bulk_delete_crash_groups_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups_bulk_delete_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteCrashGroupsParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Delete Crash Groups Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups Bulk Delete Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/filter":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get Crash Group Filters","operationId":"get_crash_group_filters_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups_filter_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"search_field","in":"query","required":true,"schema":{"type":"string","title":"Search Field"}},{"name":"search_text","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search Text"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CrashGroupFilterSchema"},"title":"Response Get Crash Group Filters Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups Filter Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Filter Crash Groups","operationId":"filter_crash_groups_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups_filter_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupSearchFilterParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupListInfoSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_groups/{crash_group_id}/link":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get Linked Crash Groups","operationId":"get_linked_crash_groups_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_id__link_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CrashGroupSchema"},"title":"Response Get Linked Crash Groups Api 1 0 Crash Reporting  Team Id  Apps  App Id  Crash Groups  Crash Group Id  Link Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Link Crash Groups","operationId":"link_crash_groups_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_id__link_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkCrashGroupParams"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Crash Reporting - Dashboard"],"summary":"Unlink Crash Groups","operationId":"unlink_crash_groups_api_1_0_crash_reporting__team_id__apps__app_id__crash_groups__crash_group_id__link_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/UnlinkCrashGroupParams"},{"type":"null"}],"title":"Params"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/app_debug_file":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"List App Debug Files","operationId":"list_app_debug_files_api_1_0_crash_reporting__team_id__apps__app_id__app_debug_file_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppDebugFileSchema"},"title":"Response List App Debug Files Api 1 0 Crash Reporting  Team Id  Apps  App Id  App Debug File Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Upload App Debug Files Dashboard","operationId":"upload_app_debug_files_dashboard_api_1_0_crash_reporting__team_id__apps__app_id__app_debug_file_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_app_debug_files_dashboard_api_1_0_crash_reporting__team_id__apps__app_id__app_debug_file_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppDebugFileSchema"},"title":"Response Upload App Debug Files Dashboard Api 1 0 Crash Reporting  Team Id  Apps  App Id  App Debug File Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/app_debug_file/{app_debug_file_id}":{"delete":{"tags":["Crash Reporting - Dashboard"],"summary":"Delete App Debug File","operationId":"delete_app_debug_file_api_1_0_crash_reporting__team_id__apps__app_id__app_debug_file__app_debug_file_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_debug_file_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Debug File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete App Debug File Api 1 0 Crash Reporting  Team Id  Apps  App Id  App Debug File  App Debug File Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/statistics":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get App Crash Statistics","operationId":"get_app_crash_statistics_api_1_0_crash_reporting__team_id__apps__app_id__statistics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppCrashStatisticsSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/missing_dsyms":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get Missing Dsyms","operationId":"get_missing_dsyms_api_1_0_crash_reporting__team_id__apps__app_id__missing_dsyms_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MissingDsymsSchema"},"title":"Response Get Missing Dsyms Api 1 0 Crash Reporting  Team Id  Apps  App Id  Missing Dsyms Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_event/{crash_event_id}":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get Crash Event","operationId":"get_crash_event_api_1_0_crash_reporting__team_id__apps__app_id__crash_event__crash_event_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventPrettifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Crash Reporting - Dashboard"],"summary":"Patch Crash Event","operationId":"patch_crash_event_api_1_0_crash_reporting__team_id__apps__app_id__crash_event__crash_event_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchCrashEventBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventPrettifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_events/{crash_event_id}/blackbox":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get Crash Event Blackbox","operationId":"get_crash_event_blackbox_api_1_0_crash_reporting__team_id__apps__app_id__crash_events__crash_event_id__blackbox_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventBlackboxSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_events/{crash_event_id}/log":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get Crash Event Log","operationId":"get_crash_event_log_api_1_0_crash_reporting__team_id__apps__app_id__crash_events__crash_event_id__log_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventLogPrettifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_events/{crash_event_id}/log/download":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Download Crash Event Log","operationId":"download_crash_event_log_api_1_0_crash_reporting__team_id__apps__app_id__crash_events__crash_event_id__log_download_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_events/{crash_event_id}/chat":{"get":{"tags":["Crash Reporting - Dashboard"],"summary":"Get Crash Event Chat","operationId":"get_crash_event_chat_api_1_0_crash_reporting__team_id__apps__app_id__crash_events__crash_event_id__chat_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventChatActivityModifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Crash Reporting - Dashboard"],"summary":"Add Crash Event Chat","operationId":"add_crash_event_chat_api_1_0_crash_reporting__team_id__apps__app_id__crash_events__crash_event_id__chat_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCrashEventChatMessageParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventChatActivityModifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/{team_id}/apps/{app_id}/crash_events_chat/{crash_event_chat_id}":{"patch":{"tags":["Crash Reporting - Dashboard"],"summary":"Patch Crash Event Chat","operationId":"patch_crash_event_chat_api_1_0_crash_reporting__team_id__apps__app_id__crash_events_chat__crash_event_chat_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_event_chat_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Chat Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchCrashEventChatBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventChatActivityModifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Crash Reporting - Dashboard"],"summary":"Delete Crash Event Chat","operationId":"delete_crash_event_chat_api_1_0_crash_reporting__team_id__apps__app_id__crash_events_chat__crash_event_chat_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"crash_event_chat_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Chat Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventChatActivityModifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/apps/{bundle_id}":{"post":{"tags":["Crash Reporting - SDK v1"],"summary":"Create Crash V1","operationId":"create_crash_v1_api_1_0_crash_reporting_apps__bundle_id__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"bundle_id","in":"path","required":true,"schema":{"type":"string","title":"Bundle Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCrashV1Params"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crash_reporting/app_debug_file/{bundle_id}":{"post":{"tags":["Crash Reporting - SDK v1"],"summary":"Upload App Debug File V1","operationId":"upload_app_debug_file_v1_api_1_0_crash_reporting_app_debug_file__bundle_id__post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"bundle_id","in":"path","required":true,"schema":{"type":"string","title":"Bundle Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_app_debug_file_v1_api_1_0_crash_reporting_app_debug_file__bundle_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppDebugFileSchema"},"title":"Response Upload App Debug File V1 Api 1 0 Crash Reporting App Debug File  Bundle Id  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/crash_reporting/crash_groups":{"get":{"tags":["Crash Reporting - Public API"],"summary":"Get Crash Groups","operationId":"get_crash_groups_api_rest_crash_reporting_crash_groups_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupListInfoSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/crash_reporting/crash_groups/{crash_group_id}":{"get":{"tags":["Crash Reporting - Public API"],"summary":"Get Crash Group","operationId":"get_crash_group_api_rest_crash_reporting_crash_groups__crash_group_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Crash Reporting - Public API"],"summary":"Patch Crash Group","operationId":"patch_crash_group_api_rest_crash_reporting_crash_groups__crash_group_id__patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPatchCrashGroupBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashGroupSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Crash Reporting - Public API"],"summary":"Delete Crash Group","operationId":"delete_crash_group_api_rest_crash_reporting_crash_groups__crash_group_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/crash_reporting/crash_groups/{crash_group_id}/crash_events":{"get":{"tags":["Crash Reporting - Public API"],"summary":"Get Crash Group Events","operationId":"get_crash_group_events_api_rest_crash_reporting_crash_groups__crash_group_id__crash_events_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"crash_group_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Group Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CrashEventListSchema"},"title":"Response Get Crash Group Events Api Rest Crash Reporting Crash Groups  Crash Group Id  Crash Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/crash_reporting/crash_events/{crash_event_id}":{"get":{"tags":["Crash Reporting - Public API"],"summary":"Get Crash Event","operationId":"get_crash_event_api_rest_crash_reporting_crash_events__crash_event_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventPrettifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Crash Reporting - Public API"],"summary":"Patch Crash Event","operationId":"patch_crash_event_api_rest_crash_reporting_crash_events__crash_event_id__patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchCrashEventBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventPrettifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/crash_reporting/crash_events/{crash_event_id}/chat":{"get":{"tags":["Crash Reporting - Public API"],"summary":"Get Crash Event Chat","operationId":"get_crash_event_chat_api_rest_crash_reporting_crash_events__crash_event_id__chat_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventChatActivityModifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Crash Reporting - Public API"],"summary":"Add Crash Event Chat","operationId":"add_crash_event_chat_api_rest_crash_reporting_crash_events__crash_event_id__chat_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicCreateCrashEventChatMessageParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventChatActivityModifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/crash_reporting/crash_events/{crash_event_id}/logs":{"get":{"tags":["Crash Reporting - Public API"],"summary":"Get Crash Event Logs","operationId":"get_crash_event_logs_api_rest_crash_reporting_crash_events__crash_event_id__logs_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"crash_event_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Crash Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashEventLogPrettifiedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/2.0/crash_reporting/apps":{"post":{"tags":["Crash Reporting - SDK v2"],"summary":"Create Crash V2","operationId":"create_crash_v2_api_2_0_crash_reporting_apps_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCrashParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/2.0/crash_reporting/app_debug_file":{"post":{"tags":["Crash Reporting - SDK v2"],"summary":"Upload App Debug File V2","operationId":"upload_app_debug_file_v2_api_2_0_crash_reporting_app_debug_file_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_app_debug_file_v2_api_2_0_crash_reporting_app_debug_file_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AppDebugFileSchema"},"type":"array","title":"Response Upload App Debug File V2 Api 2 0 Crash Reporting App Debug File Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/1.0/accounts/users":{"post":{"tags":["Accounts - Users"],"summary":"Register User","description":"Register a new user with email and password.","operationId":"register_user_api_1_0_accounts_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseUserSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/activation":{"post":{"tags":["Accounts - Users"],"summary":"Activate User","description":"Activate a new user account via email token.","operationId":"activate_user_api_1_0_accounts_users_activation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateUserParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/me":{"get":{"tags":["Accounts - Users"],"summary":"Get Me","description":"Get the authenticated user's full profile including teams.","operationId":"get_me_api_1_0_accounts_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeSchema"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/1.0/accounts/users/{user_id}":{"get":{"tags":["Accounts - Users"],"summary":"Get User","description":"Get a specific user by ID.\n\n# TODO: Check if used — /me covers the self-case; may only be needed for admin tooling.","operationId":"get_user_api_1_0_accounts_users__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseUserSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Accounts - Users"],"summary":"Update User","description":"Update user name and optionally request an email change.","operationId":"update_user_api_1_0_accounts_users__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseUserSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/{user_id}/picture":{"post":{"tags":["Accounts - Users"],"summary":"Upload Profile Photo","description":"Upload a profile photo for the user.","operationId":"upload_profile_photo_api_1_0_accounts_users__user_id__picture_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_profile_photo_api_1_0_accounts_users__user_id__picture_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseUserSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Accounts - Users"],"summary":"Delete Profile Photo","description":"Remove the user's profile photo.","operationId":"delete_profile_photo_api_1_0_accounts_users__user_id__picture_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/{user_id}/change_notifications":{"patch":{"tags":["Accounts - Users"],"summary":"Update Notification Settings","description":"Update user email notification preferences.","operationId":"update_notification_settings_api_1_0_accounts_users__user_id__change_notifications_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchUserNotificationsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotificationsSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/forgot_password":{"post":{"tags":["Accounts - Users"],"summary":"Forgot Password","description":"Send a password reset email.","operationId":"forgot_password_api_1_0_accounts_users_forgot_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForgotPasswordParams"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/check_password_code":{"post":{"tags":["Accounts - Users"],"summary":"Check Password Code","description":"Validate a password reset token.\n\n# TODO: Check if used — could be merged into reset_password (just attempt and fail gracefully).","operationId":"check_password_code_api_1_0_accounts_users_check_password_code_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPasswordCodeParams"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/reset_password":{"post":{"tags":["Accounts - Users"],"summary":"Reset Password","description":"Reset password using a reset token.","operationId":"reset_password_api_1_0_accounts_users_reset_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseUserSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/{user_id}/set_password":{"post":{"tags":["Accounts - Users"],"summary":"Set Password","description":"Set a password for the first time (e.g. Google-only users).","operationId":"set_password_api_1_0_accounts_users__user_id__set_password_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPasswordParams"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/{user_id}/change_password":{"post":{"tags":["Accounts - Users"],"summary":"Change Password","description":"Change the user's password.","operationId":"change_password_api_1_0_accounts_users__user_id__change_password_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordParams"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/resend_confirmation_email":{"post":{"tags":["Accounts - Users"],"summary":"Resend Confirmation Email","description":"Resend the account activation email.","operationId":"resend_confirmation_email_api_1_0_accounts_users_resend_confirmation_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendConfirmationParams"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/change_email":{"post":{"tags":["Accounts - Users"],"summary":"Confirm Email Change","description":"Confirm an email change using the token sent to the new address.","operationId":"confirm_email_change_api_1_0_accounts_users_change_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeEmailTokenParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseUserSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/{user_id}/request_change_email":{"post":{"tags":["Accounts - Users"],"summary":"Request Email Change","description":"Initiate an email change — sends a confirmation token to the new address.","operationId":"request_email_change_api_1_0_accounts_users__user_id__request_change_email_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestEmailChangeParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/login":{"post":{"tags":["Accounts - Auth"],"summary":"Login","description":"Authenticate with email + password and return OAuth tokens.","operationId":"login_api_1_0_accounts_users_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/logout":{"post":{"tags":["Accounts - Auth"],"summary":"Logout","description":"Revoke the refresh token (invalidates the session).","operationId":"logout_api_1_0_accounts_users_logout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoutParams"}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/1.0/accounts/users/refresh_token":{"post":{"tags":["Accounts - Auth"],"summary":"Refresh Token","description":"Exchange a refresh token for a new access token.","operationId":"refresh_token_api_1_0_accounts_users_refresh_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/google_auth":{"post":{"tags":["Accounts - Auth"],"summary":"Google Auth2","description":"Google OAuth code exchange — native HTTP POST with scope field included.","operationId":"google_auth2_api_1_0_accounts_google_auth_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleAuthParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/users/auth_canny":{"post":{"tags":["Accounts - Auth"],"summary":"Auth Canny","description":"Generate a Canny SSO JWT token for the authenticated user.","operationId":"auth_canny_api_1_0_accounts_users_auth_canny_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CannyTokenSchema"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/1.0/accounts/sendgrid/event":{"post":{"tags":["Accounts - Auth"],"summary":"Sendgrid Webhook","description":"Handle SendGrid unsubscribe/resubscribe group events.","operationId":"sendgrid_webhook_api_1_0_accounts_sendgrid_event_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/1.0/accounts/teams":{"post":{"tags":["Accounts - Teams"],"summary":"Create Team","description":"Create a new team and set the current user as admin.","operationId":"create_team_api_1_0_accounts_teams_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTeamParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseTeamSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/1.0/accounts/teams/apps":{"get":{"tags":["Accounts - Teams"],"summary":"Get Teams Apps","description":"Return apps for the browser extension.\nPublic apps (matched by Origin domain) are always returned.\nAuthenticated users also get their team apps.","operationId":"get_teams_apps_api_1_0_accounts_teams_apps_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{},"type":"array","title":"Response Get Teams Apps Api 1 0 Accounts Teams Apps Get"}}}}}}},"/api/1.0/accounts/teams/{team_id}":{"get":{"tags":["Accounts - Teams"],"summary":"Get Team","description":"Get team details including members and invitations.","operationId":"get_team_api_1_0_accounts_teams__team_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailedTeamSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Accounts - Teams"],"summary":"Update Team","description":"Update team name. Admin only.","operationId":"update_team_api_1_0_accounts_teams__team_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchTeamBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailedTeamSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Accounts - Teams"],"summary":"Delete Team","description":"Soft-delete a team and all its members/apps/invitations. Admin only.","operationId":"delete_team_api_1_0_accounts_teams__team_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/{team_id}/logo":{"post":{"tags":["Accounts - Teams"],"summary":"Upload Team Logo","description":"Upload a team logo. Admin only.","operationId":"upload_team_logo_api_1_0_accounts_teams__team_id__logo_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_team_logo_api_1_0_accounts_teams__team_id__logo_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailedTeamSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Accounts - Teams"],"summary":"Delete Team Logo","description":"Remove the team logo. Admin only.","operationId":"delete_team_logo_api_1_0_accounts_teams__team_id__logo_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/joinable_teams":{"get":{"tags":["Accounts - Teams"],"summary":"Get Joinable Teams","description":"Return teams the current user can join via approved domain.","operationId":"get_joinable_teams_api_1_0_accounts_teams_joinable_teams_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BaseTeamSchema"},"type":"array","title":"Response Get Joinable Teams Api 1 0 Accounts Teams Joinable Teams Get"}}}}},"security":[{"HTTPBearer":[]}]},"post":{"tags":["Accounts - Teams"],"summary":"Join Teams","description":"Join one or more teams via approved domain.","operationId":"join_teams_api_1_0_accounts_teams_joinable_teams_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinTeamsParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MeSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/1.0/accounts/teams/{team_id}/members":{"get":{"tags":["Accounts - Members"],"summary":"List Members","description":"List all non-SDK members of a team.","operationId":"list_members_api_1_0_accounts_teams__team_id__members_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BaseTeamMemberSchema"},"title":"Response List Members Api 1 0 Accounts Teams  Team Id  Members Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Accounts - Members"],"summary":"Add Member","description":"Add an existing user to a team. Admin only.","operationId":"add_member_api_1_0_accounts_teams__team_id__members_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddMemberParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseTeamMemberSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/{team_id}/members/{user_id}":{"put":{"tags":["Accounts - Members"],"summary":"Update Member","description":"Update a team member's role and app access. Admin only.","operationId":"update_member_api_1_0_accounts_teams__team_id__members__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMemberParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseTeamMemberSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Accounts - Members"],"summary":"Remove Member","description":"Remove a member from a team. Admin or self only.","operationId":"remove_member_api_1_0_accounts_teams__team_id__members__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/{team_id}/members/{user_id}/alerts":{"patch":{"tags":["Accounts - Members"],"summary":"Update Member Alerts","description":"Update a team member's notification alert settings.","operationId":"update_member_alerts_api_1_0_accounts_teams__team_id__members__user_id__alerts_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchMemberAlertsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseTeamMemberSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/{team_id}/members/{user_id}/confirm_notifications":{"post":{"tags":["Accounts - Members"],"summary":"Confirm Notifications","description":"Mark a team member's notifications as confirmed.","operationId":"confirm_notifications_api_1_0_accounts_teams__team_id__members__user_id__confirm_notifications_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseTeamMemberSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/{team_id}/invite":{"post":{"tags":["Accounts - Invitations"],"summary":"Send Invite","description":"Invite one or more people to a team by email.","operationId":"send_invite_api_1_0_accounts_teams__team_id__invite_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendInviteParams"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/{team_id}/invite/{team_invitation_id}":{"post":{"tags":["Accounts - Invitations"],"summary":"Resend Invite","description":"Refresh an existing invitation's expiry (resend).","operationId":"resend_invite_api_1_0_accounts_teams__team_id__invite__team_invitation_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"team_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Invitation Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseTeamInvitationSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Accounts - Invitations"],"summary":"Delete Invite","description":"Soft-delete all invitations for the same email in this team.","operationId":"delete_invite_api_1_0_accounts_teams__team_id__invite__team_invitation_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"team_invitation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Invitation Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/invite_activation":{"post":{"tags":["Accounts - Invitations"],"summary":"Accept Invite","description":"Accept a team invitation using email/password.","operationId":"accept_invite_api_1_0_accounts_teams_invite_activation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptInviteParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseUserSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/invite_activation_with_google":{"post":{"tags":["Accounts - Invitations"],"summary":"Accept Invite With Google","description":"Accept a team invitation using Google OAuth.","operationId":"accept_invite_with_google_api_1_0_accounts_teams_invite_activation_with_google_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptInviteGoogleParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthTokenSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/check_invite_code":{"post":{"tags":["Accounts - Invitations"],"summary":"Check Invite Code","description":"Validate an invite code.\n- If unused and user exists: auto-accept and return token.\n- If unused and user doesn't exist: return team info (frontend registers).\n- If used: return token (idempotent re-login).","operationId":"check_invite_code_api_1_0_accounts_teams_check_invite_code_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInviteCodeParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/InviteWithTokenSchema"},{"$ref":"#/components/schemas/TeamInviteInfoSchema"}],"title":"Response Check Invite Code Api 1 0 Accounts Teams Check Invite Code Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/{team_id}/approved_domain":{"get":{"tags":["Accounts - Invitations"],"summary":"List Approved Domains","description":"List approved domains for a team.","operationId":"list_approved_domains_api_1_0_accounts_teams__team_id__approved_domain_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApprovedDomainSchema"},"title":"Response List Approved Domains Api 1 0 Accounts Teams  Team Id  Approved Domain Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Accounts - Invitations"],"summary":"Create Approved Domain","description":"Add an approved domain to a team.","operationId":"create_approved_domain_api_1_0_accounts_teams__team_id__approved_domain_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApprovedDomainParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovedDomainSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/approved_domain_activation":{"post":{"tags":["Accounts - Invitations"],"summary":"Activate Approved Domain","description":"Verify an approved domain via the emailed code.","operationId":"activate_approved_domain_api_1_0_accounts_teams_approved_domain_activation_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateApprovedDomainParams"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApprovedDomainSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/teams/{team_id}/approved_domain/{approved_domain_id}":{"delete":{"tags":["Accounts - Invitations"],"summary":"Delete Approved Domain","description":"Delete an approved domain. Admin only.","operationId":"delete_approved_domain_api_1_0_accounts_teams__team_id__approved_domain__approved_domain_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"approved_domain_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Approved Domain Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/{team_id}/apps/{app_id}/api_keys":{"get":{"tags":["Accounts - API Keys"],"summary":"List Api Keys","description":"List API keys for an app.","operationId":"list_api_keys_api_1_0_accounts__team_id__apps__app_id__api_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeySchema"},"title":"Response List Api Keys Api 1 0 Accounts  Team Id  Apps  App Id  Api Keys Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Accounts - API Keys"],"summary":"Create Api Key","description":"Generate a new API key for an app. Admin only.","operationId":"create_api_key_api_1_0_accounts__team_id__apps__app_id__api_keys_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeySchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/{team_id}/apps/{app_id}/api_keys/{api_key_id}":{"delete":{"tags":["Accounts - API Keys"],"summary":"Delete Api Key","description":"Delete an API key. Admin only.","operationId":"delete_api_key_api_1_0_accounts__team_id__apps__app_id__api_keys__api_key_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"api_key_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Api Key Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/{team_id}/unread_notifications":{"get":{"tags":["Accounts - Notifications"],"summary":"Get Unread Notifications","description":"Get all unread issue notifications for the current user in a team.","operationId":"get_unread_notifications_api_1_0_accounts__team_id__unread_notifications_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppNotificationsSchema"},"title":"Response Get Unread Notifications Api 1 0 Accounts  Team Id  Unread Notifications Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/{team_id}/issue_notification/{notification_id}/mark_read":{"patch":{"tags":["Accounts - Notifications"],"summary":"Mark Notification Read","description":"Mark a single notification as read.","operationId":"mark_notification_read_api_1_0_accounts__team_id__issue_notification__notification_id__mark_read_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Notification Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchNotificationBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueTeamMemberNotificationSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/accounts/{team_id}/apps/{app_id}/issue_notification/mark":{"post":{"tags":["Accounts - Notifications"],"summary":"Bulk Mark Notifications","description":"Bulk mark notifications as read/unread for a set of issues.","operationId":"bulk_mark_notifications_api_1_0_accounts__team_id__apps__app_id__issue_notification_mark_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkMarkParams"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/rest/accounts/members":{"get":{"tags":["Accounts - Public API"],"summary":"Get Members","description":"Get team members for the authenticated app.\nAuthenticated via X-API-KEY header (public-type key, no SDK headers required).","operationId":"get_members_api_rest_accounts_members_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/BaseTeamMemberSchema"},"type":"array","title":"Response Get Members Api Rest Accounts Members Get"}}}}},"security":[{"APIKeyHeader":[]}]}},"/auth/oauth2/revoke":{"post":{"tags":["OAuth2"],"summary":"Oauth2 Revoke","description":"Revoke a refresh token (RFC 7009).","operationId":"oauth2_revoke_auth_oauth2_revoke_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_oauth2_revoke_auth_oauth2_revoke_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/devices":{"get":{"tags":["Analytics"],"summary":"Get Devices Analytics","description":"Get unique device counts over time, segmented by app, for a team.","operationId":"get_devices_analytics_api_1_0_analytics__team_id__devices_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"group","in":"query","required":false,"schema":{"enum":["day","week","month","year"],"type":"string","default":"week","title":"Group"}},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Date"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Devices Analytics Api 1 0 Analytics  Team Id  Devices Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/releases":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Release Versions","operationId":"get_release_versions_api_1_0_analytics__team_id__apps__app_id__health_releases_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Search"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseVersionListSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/feedback_volume":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Feedback Volume","operationId":"get_feedback_volume_api_1_0_analytics__team_id__apps__app_id__health_feedback_volume_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackVolumeSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/crash_volume":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Crash Volume","operationId":"get_crash_volume_api_1_0_analytics__team_id__apps__app_id__health_crash_volume_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrashVolumeSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/network_health":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Network Health","operationId":"get_network_health_api_1_0_analytics__team_id__apps__app_id__health_network_health_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkHealthSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/network_speed":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Network Speed","operationId":"get_network_speed_api_1_0_analytics__team_id__apps__app_id__health_network_speed_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["avg_desc","avg_asc","name_asc","name_desc"],"type":"string","default":"avg_desc","title":"Sort"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkSpeedSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/resolution_rate":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Resolution Rate","operationId":"get_resolution_rate_api_1_0_analytics__team_id__apps__app_id__health_resolution_rate_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolutionRateSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/mttr":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Mttr","operationId":"get_mttr_api_1_0_analytics__team_id__apps__app_id__health_mttr_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MttrSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/testing_coverage":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Testing Coverage","operationId":"get_testing_coverage_api_1_0_analytics__team_id__apps__app_id__health_testing_coverage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestingCoverageSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/release_health":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Release Health Overview","operationId":"get_release_health_overview_api_1_0_analytics__team_id__apps__app_id__health_release_health_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseHealthOverviewSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/release_summary":{"get":{"tags":["Analytics - Release Health"],"summary":"Get Release Summary","description":"Return the latest stored LLM summary for a release.\n\nReads the pre-generated row only (no LLM in the request path). On a miss it\nlazily kicks off generation for this exact version and returns 404 — clients\ncan poll until it's ready (or POST `.../release_summary/regenerate`).","operationId":"get_release_summary_api_1_0_analytics__team_id__apps__app_id__health_release_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseSummarySchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/health/release_summary/regenerate":{"post":{"tags":["Analytics - Release Health"],"summary":"Regenerate Release Summary","description":"Enqueue (re)generation of the summary for a single release.\n\nReturns 202 immediately; the summary is produced asynchronously by the\nCelery worker and then served by the GET endpoint. Each (app, version) can be\nregenerated at most once per 24h — every run is a paid LLM invocation.","operationId":"regenerate_release_summary_api_1_0_analytics__team_id__apps__app_id__health_release_summary_regenerate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"app_version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"App Version"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Regenerate Release Summary Api 1 0 Analytics  Team Id  Apps  App Id  Health Release Summary Regenerate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/scoring":{"get":{"tags":["Analytics - Scoring Config"],"summary":"List Scoring Configs","operationId":"list_scoring_configs_api_1_0_analytics__team_id__apps__app_id__scoring_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AppScoringConfigSchema"},"title":"Response List Scoring Configs Api 1 0 Analytics  Team Id  Apps  App Id  Scoring Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/scoring/{metric}":{"get":{"tags":["Analytics - Scoring Config"],"summary":"Get Scoring Config","description":"Effective config for one metric; with `app_version`, also its raw score inputs.\n\nThe tuning screen passes `app_version` to get `score_inputs` in the same response:\nthe raw data the metric's formula reads plus the current score, so the frontend can\nrecompute the score locally as the user tweaks config values. Without `app_version`\nthe response is config-only. `release_health` is always config-only — its inputs are\nthe six sub-scores the dashboard already has from the overview response.","operationId":"get_scoring_config_api_1_0_analytics__team_id__apps__app_id__scoring__metric__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"metric","in":"path","required":true,"schema":{"type":"string","title":"Metric"}},{"name":"app_version","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":64},{"type":"null"}],"title":"App Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppScoringConfigSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Analytics - Scoring Config"],"summary":"Put Scoring Config","operationId":"put_scoring_config_api_1_0_analytics__team_id__apps__app_id__scoring__metric__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"metric","in":"path","required":true,"schema":{"type":"string","title":"Metric"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppScoringConfigSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Analytics - Scoring Config"],"summary":"Delete Scoring Config","description":"Soft-delete the override (active=False); reverts the metric to default.\n\nIdempotent: returns 204 even when no active override exists.","operationId":"delete_scoring_config_api_1_0_analytics__team_id__apps__app_id__scoring__metric__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"metric","in":"path","required":true,"schema":{"type":"string","title":"Metric"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/scoring/testing_coverage/metadata_keys":{"get":{"tags":["Analytics - Scoring Config"],"summary":"Get Testing Coverage Metadata Keys","description":"All-time metadata key names found in issue tickets for this app (see `fetch_testing_coverage_metadata_keys`).","operationId":"get_testing_coverage_metadata_keys_api_1_0_analytics__team_id__apps__app_id__scoring_testing_coverage_metadata_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestingCoverageMetadataKeysSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/analytics/{team_id}/apps/{app_id}/scoring/testing_coverage/values/{key}":{"get":{"tags":["Analytics - Scoring Config"],"summary":"Get Testing Coverage Key Values","description":"All-time `{value, count}` for one dimension or metadata key, summed across every session.\n\nDimension values are prettified/merged (see `read_key_values`) so the picker offers the same\nvocabulary `dimension_targets` are matched against -- mirrors how `get_scoring_config` threads\n`app_os` into `assemble_score_inputs` above.","operationId":"get_testing_coverage_key_values_api_1_0_analytics__team_id__apps__app_id__scoring_testing_coverage_values__key__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CoverageKeyValuesSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/2.0/analytics/sessions/init":{"post":{"tags":["Session Tracking"],"summary":"Session Init","description":"Authenticate/validate headers, dedup + apply batch-aggregated counter increments, return config.","operationId":"session_init_api_2_0_analytics_sessions_init_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionInitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionInitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/1.0/crm/refresh-organizations":{"post":{"tags":["crm"],"summary":"Refresh Organizations","description":"Trigger the Flask-owned Pipedrive organizations sync for the given team IDs (or all teams).","operationId":"refresh_organizations_api_1_0_crm_refresh_organizations_post","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshIdsParameters","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmResponseSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crm/refresh-persons":{"post":{"tags":["crm"],"summary":"Refresh Persons","description":"Trigger the Flask-owned Pipedrive/Intercom persons sync for the given user IDs (or all users).","operationId":"refresh_persons_api_1_0_crm_refresh_persons_post","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshIdsParameters","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmResponseSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crm/load-intercom":{"post":{"tags":["crm"],"summary":"Load Intercom","description":"Trigger the Flask-owned load of missing Intercom contacts into the CRM.","operationId":"load_intercom_api_1_0_crm_load_intercom_post","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmResponseSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crm/free-plan":{"get":{"tags":["crm"],"summary":"Free Plan Teams","description":"Count of teams active on the free plan (see crm/queries.py for the exact definition).","operationId":"free_plan_teams_api_1_0_crm_free_plan_get","parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeTeamsResponseSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/crm/survey/signup":{"post":{"tags":["crm"],"summary":"Survey Signup","description":"Tally webhook: record a user's signup-survey answer. No header auth -- Tally can't send\ncustom headers -- gated only by the FORM_RESPONSE event-type check, matching Flask exactly.","operationId":"survey_signup_api_1_0_crm_survey_signup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmResponseSchema"}}}}}}},"/api/1.0/crm/survey/unsubscribe":{"post":{"tags":["crm"],"summary":"Survey Unsubscribe","description":"Tally webhook: record a team's unsubscribe-survey answer. Same no-header-auth rationale as\nsurvey_signup.","operationId":"survey_unsubscribe_api_1_0_crm_survey_unsubscribe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmResponseSchema"}}}}}}},"/api/1.0/events_tracking/teams/{team_id}/log":{"get":{"tags":["events_tracking"],"summary":"List Tracking Events","description":"List tracking events performed by the current user or the team. Requires active team\nmembership -- matches the dominant clause of Flask's `SupervisorOwnerOrUserTypePermission` (any\nteam member); the role-bitmask staff-bypass branch is the already-documented, accepted\n`project_fastapi_dashboard_auth_gaps` gap.","operationId":"list_tracking_events_api_1_0_events_tracking_teams__team_id__log_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TrackingEventSchema"},"title":"Response List Tracking Events Api 1 0 Events Tracking Teams  Team Id  Log Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["events_tracking"],"summary":"Log Tracking Event","description":"Log a tracking event. Matches Flask's actual permission exactly: only the REGULAR_USER role\nbit is required, no team-membership check at all -- a deliberate, developer-approved parity\nchoice (see design spec's scope decision #2), not a gap this migration fixes.","operationId":"log_tracking_event_api_1_0_events_tracking_teams__team_id__log_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogTrackingEventParams"}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/files/crash_report":{"post":{"tags":["files"],"summary":"Upload Crash Report","description":"Upload an SDK crash/log report (production only, no auth, no team/app scoping).","operationId":"upload_crash_report_api_1_0_files_crash_report_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_crash_report_api_1_0_files_crash_report_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/files/{team_id}/apps/{app_id}/files":{"post":{"tags":["files"],"summary":"Upload Issue File","description":"Upload a file to attach to a ticket (dashboard, owner-or-admin).","operationId":"upload_issue_file_api_1_0_files__team_id__apps__app_id__files_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_issue_file_api_1_0_files__team_id__apps__app_id__files_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/2.0/files":{"post":{"tags":["files"],"summary":"Upload File","description":"Upload a file for the SDK app's team (mobile SDK, API-key auth).","operationId":"upload_file_api_2_0_files_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file_api_2_0_files_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/1.0/rules/available_rules":{"get":{"tags":["rules"],"summary":"Get Available Rules","description":"Global catalog of rule building blocks. No team/app scoping -- matches Flask's bare\n`login_required` (no `permission_required` at all). The three plain `select(...)` calls below\nare already filtered to `active=True` by fastapp's global session-level soft-delete listener\n(src/database/mixins.py) with no explicit `.where()` needed -- matching Flask's\n`Model.query.all()`, which goes through the same kind of default-active filter on its own\nmodel-level query_class.","operationId":"get_available_rules_api_1_0_rules_available_rules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailableRulesSchema"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/1.0/rules/{team_id}/apps/{app_id}/rules":{"get":{"tags":["rules"],"summary":"List Rules","description":"List rules for an app. Auth matches Flask's `OwnerOrUserTypePermission(roles=[ADMIN],\nobj=app)`'s dominant clause (any team member with app access) via `resolve_app_context` -- the\n`ADMIN` role-bitmask OR-bypass branch is the already-documented, accepted\n`project_fastapi_dashboard_auth_gaps` gap, not implemented here. Not filtered by `active` -- see\ndesign spec scope decision #2 and `build_rule_list_query`'s own docstring.","operationId":"list_rules_api_1_0_rules__team_id__apps__app_id__rules_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RuleSchema"},"title":"Response List Rules Api 1 0 Rules  Team Id  Apps  App Id  Rules Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["rules"],"summary":"Create Rule","description":"Create a rule. Same auth as `list_rules`. `active` defaults to `False`, matching Flask's\n`CreateRuleParameters.active = base_fields.Boolean(missing=False)` exactly.","operationId":"create_rule_api_1_0_rules__team_id__apps__app_id__rules_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRuleParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/rules/{team_id}/apps/{app_id}/rules/{rule_id}":{"put":{"tags":["rules"],"summary":"Update Rule","description":"Update a rule's name/active flag and sync its trigger/conditions/actions. Same auth as\n`list_rules`/`create_rule`. Re-resolves the rule after commit so the response reflects the\npost-sync state exactly (rather than relying on in-memory relationship-collection bookkeeping\nacross the delete/update/insert steps in `sync_rule_children`).","operationId":"update_rule_api_1_0_rules__team_id__apps__app_id__rules__rule_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRuleParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RuleSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["rules"],"summary":"Delete Rule","description":"Hard-delete a rule (cascades to its trigger/conditions/actions). Matches Flask's real\n`db.session.delete(rule)` exactly -- see design spec scope decision #3. Same auth as the other\nthree endpoints.","operationId":"delete_rule_api_1_0_rules__team_id__apps__app_id__rules__rule_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}},{"name":"app_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"App Id"}},{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Rule Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/white_labeling/{team_id}":{"get":{"tags":["white_labeling"],"summary":"Get White Label","description":"Get white-label settings for a team. Any active team member (any role) may read.","operationId":"get_white_label_api_1_0_white_labeling__team_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhiteLabelSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["white_labeling"],"summary":"Update White Label","description":"Update white-label settings for a team. Admin only. Full-replace of all 3 fields, matching\nFlask's `PostJSONParameters`-based semantics (not a JSON-patch).","operationId":"update_white_label_api_1_0_white_labeling__team_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWhiteLabelParams"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhiteLabelSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/1.0/white_labeling/{team_id}/logo":{"post":{"tags":["white_labeling"],"summary":"Upload White Label Logo","description":"Upload a white-label logo image (jpeg/png). Admin only. Does not write the URL onto the row\n-- matches Flask's `UploadLogo.post`, which only returns `{'url': url}`; the dashboard PUTs the\nURL back via update_white_label separately.","operationId":"upload_white_label_logo_api_1_0_white_labeling__team_id__logo_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Team Id"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_white_label_logo_api_1_0_white_labeling__team_id__logo_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogoUploadSchema"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AcceptInviteGoogleParams":{"properties":{"code":{"type":"string","title":"Code"},"token":{"type":"string","title":"Token"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"client_id":{"type":"string","title":"Client Id"}},"type":"object","required":["code","token","redirect_uri","client_id"],"title":"AcceptInviteGoogleParams"},"AcceptInviteParams":{"properties":{"code":{"type":"string","title":"Code"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"}},"type":"object","required":["code"],"title":"AcceptInviteParams"},"ActionSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"rule":{"type":"string","format":"uuid","title":"Rule"},"type":{"type":"string","format":"uuid","title":"Type"},"args":{"additionalProperties":true,"type":"object","title":"Args"}},"type":"object","required":["id","created","updated","rule","type","args"],"title":"ActionSchema"},"ActivateApprovedDomainParams":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"ActivateApprovedDomainParams"},"ActivateAsanaIntegrationParams":{"properties":{"authorization_code":{"type":"string","title":"Authorization Code"},"state":{"type":"string","title":"State"}},"type":"object","required":["authorization_code","state"],"title":"ActivateAsanaIntegrationParams"},"ActivateClickupParams":{"properties":{"authorization_code":{"type":"string","title":"Authorization Code"},"client_id":{"type":"string","title":"Client Id"}},"type":"object","required":["authorization_code","client_id"],"title":"ActivateClickupParams"},"ActivateGithubIntegrationParams":{"properties":{"authorization_code":{"type":"string","title":"Authorization Code"},"state":{"type":"string","title":"State"}},"type":"object","required":["authorization_code","state"],"title":"ActivateGithubIntegrationParams"},"ActivateJiraIntegrationParams":{"properties":{"authorization_code":{"type":"string","title":"Authorization Code"},"state":{"type":"string","title":"State"}},"type":"object","required":["authorization_code","state"],"title":"ActivateJiraIntegrationParams"},"ActivateLinearIntegrationParams":{"properties":{"authorization_code":{"type":"string","title":"Authorization Code"},"state":{"type":"string","title":"State"}},"type":"object","required":["authorization_code","state"],"title":"ActivateLinearIntegrationParams"},"ActivateNotionParams":{"properties":{"authorization_code":{"type":"string","title":"Authorization Code"},"state":{"type":"string","title":"State"}},"type":"object","required":["authorization_code","state"],"title":"ActivateNotionParams"},"ActivateSentryParams":{"properties":{"authorization_code":{"type":"string","title":"Authorization Code"},"client_id":{"type":"string","title":"Client Id"},"installation_id":{"type":"string","title":"Installation Id"}},"type":"object","required":["authorization_code","client_id","installation_id"],"title":"ActivateSentryParams"},"ActivateUserParams":{"properties":{"client_id":{"type":"string","title":"Client Id"},"code":{"type":"string","title":"Code"}},"type":"object","required":["client_id","code"],"title":"ActivateUserParams"},"ActivityHistoryParameters":{"properties":{"user_actions":{"items":{"$ref":"#/components/schemas/UserActionParameters"},"type":"array","title":"User Actions","default":[]},"network_requests":{"items":{"$ref":"#/components/schemas/NetworkRequestParameters"},"type":"array","title":"Network Requests","default":[]},"view_controller_history":{"items":{"$ref":"#/components/schemas/ViewControllerParameters"},"type":"array","title":"View Controller History","default":[]},"system_events":{"items":{"$ref":"#/components/schemas/SystemEventParameters"},"type":"array","title":"System Events","default":[]},"notification_events":{"items":{"$ref":"#/components/schemas/NotificationParameters"},"type":"array","title":"Notification Events","default":[]},"custom_log_events":{"items":{"$ref":"#/components/schemas/CustomLogParameters"},"type":"array","title":"Custom Log Events","default":[]},"console_log_events":{"items":{"$ref":"#/components/schemas/ConsoleLogParameters"},"type":"array","title":"Console Log Events","default":[]}},"type":"object","title":"ActivityHistoryParameters"},"AddMemberParams":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id"},"role":{"$ref":"#/components/schemas/TeamMemberRole"}},"type":"object","required":["user_id","role"],"title":"AddMemberParams"},"AnrFreeSessionsSchema":{"properties":{"total_sessions":{"type":"integer","title":"Total Sessions"},"anr_sessions":{"type":"integer","title":"Anr Sessions"},"anr_free_sessions":{"type":"integer","title":"Anr Free Sessions"},"anr_free_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Anr Free Rate","description":"ANR-free sessions as a percentage (anr_free / total * 100); null when there are no counted sessions."},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"ANR health score on the 0-10 scale (one decimal); null when there are no counted sessions. Standalone -- does NOT contribute to release_health_score."}},"type":"object","required":["total_sessions","anr_sessions","anr_free_sessions"],"title":"AnrFreeSessionsSchema"},"ApiKeySchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"key":{"type":"string","title":"Key"},"type":{"$ref":"#/components/schemas/ApiKeyType"}},"type":"object","required":["id","created","key","type"],"title":"ApiKeySchema"},"ApiKeyType":{"type":"string","enum":["sdk","public"],"title":"ApiKeyType"},"AppCrashStatisticsSchema":{"properties":{"is_dsym_missing":{"type":"boolean","title":"Is Dsym Missing"}},"type":"object","required":["is_dsym_missing"],"title":"AppCrashStatisticsSchema"},"AppDebugFileSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"active":{"type":"boolean","title":"Active"},"app_version_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version Name"},"app_version_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version Code"},"uuid":{"type":"string","title":"Uuid"},"arch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arch"}},"type":"object","required":["id","app_id","created","updated","active","uuid"],"title":"AppDebugFileSchema"},"AppDomainSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"domain":{"type":"string","title":"Domain"},"verified":{"type":"boolean","title":"Verified"}},"type":"object","required":["id","domain","verified"],"title":"AppDomainSchema"},"AppMobileSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"key":{"type":"string","title":"Key"},"active":{"type":"boolean","title":"Active"},"is_approved":{"type":"boolean","title":"Is Approved"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bundle Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","required":["id","created","updated","key","active","is_approved","bundle_id","name"],"title":"AppMobileSchema"},"AppNotificationsSchema":{"properties":{"app_id":{"type":"string","format":"uuid","title":"App Id"},"app_notifications":{"items":{"$ref":"#/components/schemas/IssueTeamMemberNotificationSchema"},"type":"array","title":"App Notifications"}},"type":"object","required":["app_id","app_notifications"],"title":"AppNotificationsSchema"},"AppPushNotificationAuthSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"created":{"type":"string","title":"Created"},"updated":{"type":"string","title":"Updated"},"active":{"type":"boolean","title":"Active"},"expiration_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expiration Date"},"is_development":{"type":"boolean","title":"Is Development"}},"type":"object","required":["id","app_id","created","updated","active","expiration_date","is_development"],"title":"AppPushNotificationAuthSchema"},"AppSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"active":{"type":"boolean","title":"Active"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"platform":{"$ref":"#/components/schemas/PlatformSchema"},"key":{"type":"string","title":"Key"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bundle Id"},"is_approved":{"type":"boolean","title":"Is Approved"},"is_sample":{"type":"boolean","title":"Is Sample"},"is_extension":{"type":"boolean","title":"Is Extension"},"ai_enabled":{"type":"boolean","title":"Ai Enabled"},"api_keys":{"items":{"$ref":"#/components/schemas/ApiKeySchema"},"type":"array","title":"Api Keys"},"team_id":{"type":"string","format":"uuid","title":"Team Id"},"follow_app":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Follow App"},"integrations":{"items":{"$ref":"#/components/schemas/ServiceHookListSchema"},"type":"array","title":"Integrations","default":[]}},"type":"object","required":["id","active","name","platform","key","logo_url","description","bundle_id","is_approved","is_sample","is_extension","ai_enabled","api_keys","team_id"],"title":"AppSchema"},"AppScoringConfigSchema":{"properties":{"metric":{"type":"string","title":"Metric"},"source":{"type":"string","enum":["default","override"],"title":"Source","description":"`override` when a DB row exists; `default` otherwise."},"config":{"additionalProperties":true,"type":"object","title":"Config"},"score_inputs":{"anyOf":[{"$ref":"#/components/schemas/ScoreInputsSchema"},{"type":"null"}],"description":"Raw data for the realtime score preview; only populated by the single-metric GET when `app_version` is passed, and never for `release_health` (its inputs are the six sub-scores already present in the overview response)."}},"type":"object","required":["metric","source","config"],"title":"AppScoringConfigSchema","description":"Response envelope describing the effective config for one metric."},"AppUserDetailSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"end_user_id":{"type":"string","title":"End User Id"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created":{"type":"string","title":"Created"},"updated":{"type":"string","title":"Updated"},"banned":{"type":"boolean","title":"Banned"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"tickets_count":{"type":"integer","title":"Tickets Count"},"tickets":{"items":{"$ref":"#/components/schemas/AppUserTicketsSchema"},"type":"array","title":"Tickets"}},"type":"object","required":["id","end_user_id","created","updated","banned","city","country","tickets_count","tickets"],"title":"AppUserDetailSchema","description":"Full shape — Flask's bare `AppUserSchema()`: both the ticket list and the count."},"AppUserFilter":{"properties":{"filter_type":{"type":"string","title":"Filter Type"},"filter_value":{"type":"string","title":"Filter Value"},"filter_operator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter Operator"},"field_name":{"type":"string","title":"Field Name"},"field_value":{"type":"string","title":"Field Value"}},"type":"object","required":["filter_type","filter_value","field_name","field_value"],"title":"AppUserFilter"},"AppUserFilterSchema":{"properties":{"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"}},"type":"object","required":["name","value"],"title":"AppUserFilterSchema"},"AppUserListInfoSchema":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/AppUserSchema"},"type":"array","title":"Items"}},"type":"object","required":["total","items"],"title":"AppUserListInfoSchema"},"AppUserMobileSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"banned":{"type":"boolean","title":"Banned"},"end_user_id":{"type":"string","title":"End User Id"},"metadata_":{"additionalProperties":true,"type":"object","title":"Metadata"},"created":{"type":"string","title":"Created"},"updated":{"type":"string","title":"Updated"}},"type":"object","required":["id","banned","end_user_id","metadata_","created","updated"],"title":"AppUserMobileSchema"},"AppUserSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"end_user_id":{"type":"string","title":"End User Id"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created":{"type":"string","title":"Created"},"updated":{"type":"string","title":"Updated"},"banned":{"type":"boolean","title":"Banned"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"tickets_count":{"type":"integer","title":"Tickets Count"}},"type":"object","required":["id","end_user_id","created","updated","banned","city","country","tickets_count"],"title":"AppUserSchema","description":"Count-only shape — Flask's `AppUserSchema(exclude=['tickets'])`, used for list responses."},"AppUserSearchFilterParameters":{"properties":{"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","default":20},"offset":{"type":"integer","minimum":0.0,"title":"Offset","default":0},"filters":{"items":{"$ref":"#/components/schemas/AppUserFilter"},"type":"array","title":"Filters"},"sort":{"$ref":"#/components/schemas/AppUserSortKey","default":"created"}},"type":"object","required":["filters"],"title":"AppUserSearchFilterParameters"},"AppUserSharedSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"end_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End User Id"}},"type":"object","required":["id"],"title":"AppUserSharedSchema"},"AppUserSortKey":{"type":"string","enum":["created","tickets"],"title":"AppUserSortKey"},"AppUserTicketListSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"end_user_id":{"type":"string","title":"End User Id"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created":{"type":"string","title":"Created"},"updated":{"type":"string","title":"Updated"},"banned":{"type":"boolean","title":"Banned"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"tickets":{"items":{"$ref":"#/components/schemas/AppUserTicketsSchema"},"type":"array","title":"Tickets"}},"type":"object","required":["id","end_user_id","created","updated","banned","city","country","tickets"],"title":"AppUserTicketListSchema","description":"Tickets without the count — Flask's `AppUserSchema(exclude=['tickets_count'])`. The asymmetry\nis Flask's: only `GET /{team_id}/apps/{app_id}/users/{app_user_id}` excludes the count, while the\nother two detail endpoints return both. Kept rather than normalised, per the parity rule."},"AppUserTicketsSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"key":{"type":"integer","title":"Key"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"reported_time":{"type":"string","title":"Reported Time"},"type":{"type":"string","title":"Type"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["id","key","title","screenshot_url","reported_time","type","priority","status","tags"],"title":"AppUserTicketsSchema"},"AppUserTicketsSyncSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","title":"Created"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"reported_time":{"type":"string","title":"Reported Time"},"type":{"type":"string","title":"Type"},"messages":{"items":{"$ref":"#/components/schemas/TicketReplySchema"},"type":"array","title":"Messages"}},"type":"object","required":["id","created","title","screenshot_url","reported_time","type","messages"],"title":"AppUserTicketsSyncSchema"},"AppWithIntegrationsSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"active":{"type":"boolean","title":"Active"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"platform":{"$ref":"#/components/schemas/PlatformSchema"},"key":{"type":"string","title":"Key"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bundle Id"},"is_approved":{"type":"boolean","title":"Is Approved"},"is_sample":{"type":"boolean","title":"Is Sample"},"is_extension":{"type":"boolean","title":"Is Extension"},"ai_enabled":{"type":"boolean","title":"Ai Enabled"},"api_keys":{"items":{"$ref":"#/components/schemas/ApiKeySchema"},"type":"array","title":"Api Keys"},"team_id":{"type":"string","format":"uuid","title":"Team Id"},"follow_app":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Follow App"},"integrations":{"items":{"$ref":"#/components/schemas/ServiceHookListSchema"},"type":"array","title":"Integrations","default":[]},"slack":{"anyOf":[{"$ref":"#/components/schemas/SlackSchema"},{"type":"null"}]},"jira":{"anyOf":[{"$ref":"#/components/schemas/JiraSchema"},{"type":"null"}]},"azure":{"anyOf":[{"$ref":"#/components/schemas/AzureSchema"},{"type":"null"}]},"zapier":{"anyOf":[{"$ref":"#/components/schemas/ZapierSchema"},{"type":"null"}]},"asana":{"anyOf":[{"$ref":"#/components/schemas/AsanaSchema"},{"type":"null"}]},"trello":{"anyOf":[{"$ref":"#/components/schemas/TrelloSchema"},{"type":"null"}]},"github":{"anyOf":[{"$ref":"#/components/schemas/GithubSchema"},{"type":"null"}]},"clickup":{"anyOf":[{"$ref":"#/components/schemas/ClickupSchema"},{"type":"null"}]},"linear":{"anyOf":[{"$ref":"#/components/schemas/LinearSchema"},{"type":"null"}]},"webhook":{"anyOf":[{"$ref":"#/components/schemas/WebhookSchema"},{"type":"null"}]},"notion":{"anyOf":[{"$ref":"#/components/schemas/NotionSchema"},{"type":"null"}]}},"type":"object","required":["id","active","name","platform","key","logo_url","description","bundle_id","is_approved","is_sample","is_extension","ai_enabled","api_keys","team_id"],"title":"AppWithIntegrationsSchema","description":"`AppSchema` plus the connected integration rows themselves, for the six handlers that return\nan app as the top-level response.\n\nFlask's `AppSchema` nests both shapes (schemas.py:906-919) and the dashboard reads both: the\n`integrations` list inherited above is the `vw_service_hooks` summary, and these are the rows,\ncarrying everything rendered from an integration's own columns -- selected channel/board/project,\ncredentials, layout, two-way-sync flags. fastapp shipped only the list (2026-09-09 ruling);\nreversed by developer decision 2026-09-21 because that left the dashboard without those fields.\n\nA SUBCLASS, not eleven more fields on `AppSchema`, and that is load-bearing. `AppSchema` is also\nnested at `BaseIssueSchema.app` and twice in `crash_reporting/schemas/crash.py`, and an optional\nfield with a default does NOT make an unloaded relationship safe there: Pydantic reaches it by\n`getattr`, which raises MissingGreenlet rather than AttributeError, so the default is never\nreached -- the same gotcha `AppSchema.integrations` already documents, and verified here by\nputting these on `AppSchema` first and watching every crash-REST and issue-detail test fail.\nKeeping them on a subclass means those paths neither pay for eleven extra selects nor carry\nintegration objects Flask does not put on an issue or crash payload at all.\n\n`youtrack` is absent, not null: no fastapp model exists (permanently out of migration scope) and\nthe key would advertise support that does not exist. `sentry` is absent because `Sentry` is\nteam-scoped -- Flask's `AppSchema` omits it too."},"ApproveAppParams":{"properties":{"is_approved":{"type":"boolean","title":"Is Approved"}},"type":"object","required":["is_approved"],"title":"ApproveAppParams"},"ApprovedDomainSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"verified":{"type":"boolean","title":"Verified"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"team":{"$ref":"#/components/schemas/BaseTeamSchema"}},"type":"object","required":["id","name","verified","created","updated","team"],"title":"ApprovedDomainSchema"},"AsanaProjectSchema":{"properties":{"name":{"type":"string","title":"Name"},"project_id":{"type":"string","title":"Project Id"},"sections":{"items":{"$ref":"#/components/schemas/AsanaSectionSchema"},"type":"array","title":"Sections"}},"type":"object","required":["name","project_id","sections"],"title":"AsanaProjectSchema"},"AsanaSchema":{"properties":{"integration_layout":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Layout"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"section_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Section Id"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["integration_layout","id","created","updated","active","app_id","project_id","section_id","automatic_forward","deactivation_reason","integration_layout_version"],"title":"AsanaSchema"},"AsanaSectionSchema":{"properties":{"section_id":{"type":"string","title":"Section Id"},"section_name":{"type":"string","title":"Section Name"}},"type":"object","required":["section_id","section_name"],"title":"AsanaSectionSchema"},"AsanaWorkspaceProjectsSchema":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"projects":{"items":{"$ref":"#/components/schemas/AsanaProjectSchema"},"type":"array","title":"Projects"},"workspace_id":{"type":"string","title":"Workspace Id"},"workspace_name":{"type":"string","title":"Workspace Name"}},"type":"object","required":["integration_id","projects","workspace_id","workspace_name"],"title":"AsanaWorkspaceProjectsSchema"},"AuthorizeParameters":{"properties":{"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"scope":{"type":"string","title":"Scope","default":"mcp:read mcp:write accounts:read"},"code_challenge":{"type":"string","title":"Code Challenge"},"code_challenge_method":{"type":"string","title":"Code Challenge Method","default":"S256"},"resource":{"type":"string","title":"Resource"}},"type":"object","required":["client_id","redirect_uri"],"title":"AuthorizeParameters"},"AvailableRulesSchema":{"properties":{"modules":{"items":{"type":"string"},"type":"array","title":"Modules"},"trigger_types":{"items":{"$ref":"#/components/schemas/RuleTypeSchema"},"type":"array","title":"Trigger Types"},"condition_types":{"items":{"$ref":"#/components/schemas/RuleTypeSchema"},"type":"array","title":"Condition Types"},"action_types":{"items":{"$ref":"#/components/schemas/RuleTypeSchema"},"type":"array","title":"Action Types"}},"type":"object","required":["modules","trigger_types","condition_types","action_types"],"title":"AvailableRulesSchema"},"AzureProjectSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"}},"type":"object","required":["key","name","integration_id"],"title":"AzureProjectSchema"},"AzureSchema":{"properties":{"integration_layout":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Layout"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"organization_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Url"},"project_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Name"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["integration_layout","id","created","updated","active","app_id","organization_url","project_name","automatic_forward","deactivation_reason","integration_layout_version"],"title":"AzureSchema"},"AzureWorkspaceSchema":{"properties":{"projects":{"items":{"$ref":"#/components/schemas/AzureProjectSchema"},"type":"array","title":"Projects"},"url":{"type":"string","title":"Url"}},"type":"object","required":["projects","url"],"title":"AzureWorkspaceSchema"},"BaseAppUserSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"end_user_id":{"type":"string","title":"End User Id"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"created":{"type":"string","title":"Created"},"updated":{"type":"string","title":"Updated"},"banned":{"type":"boolean","title":"Banned"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},"type":"object","required":["id","end_user_id","created","updated","banned","city","country"],"title":"BaseAppUserSchema","description":"Fields common to every dashboard app-user response. Mirrors Flask's `AppUserSchema.Meta.fields`\nminus the two ticket members, which the subclasses below add back per endpoint."},"BaseCheckoutSessionSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"customer_id":{"type":"string","format":"uuid","title":"Customer Id"},"stripe_checkout_session_id":{"type":"string","title":"Stripe Checkout Session Id"},"stripe_checkout_session_url":{"type":"string","title":"Stripe Checkout Session Url"},"status":{"$ref":"#/components/schemas/CheckoutSessionStatus"}},"type":"object","required":["id","created","customer_id","stripe_checkout_session_id","stripe_checkout_session_url","status"],"title":"BaseCheckoutSessionSchema"},"BaseCouponSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"stripe_coupon_id":{"type":"string","title":"Stripe Coupon Id"},"plan_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Plan Id"},"percent_off":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent Off"},"amount_off":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Off"}},"type":"object","required":["id","name","stripe_coupon_id","plan_id","percent_off","amount_off"],"title":"BaseCouponSchema"},"BaseCreditCardSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"customer_id":{"type":"string","format":"uuid","title":"Customer Id"},"brand":{"type":"string","title":"Brand"},"last4":{"type":"string","title":"Last4"},"exp_month":{"type":"integer","title":"Exp Month"},"exp_year":{"type":"integer","title":"Exp Year"}},"type":"object","required":["id","customer_id","brand","last4","exp_month","exp_year"],"title":"BaseCreditCardSchema"},"BaseCustomerSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"team_id":{"type":"string","format":"uuid","title":"Team Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"is_free":{"type":"boolean","title":"Is Free"},"balance":{"type":"integer","title":"Balance"},"subscription":{"anyOf":[{"$ref":"#/components/schemas/BaseSubscriptionSchema"},{"type":"null"}]}},"type":"object","required":["id","team_id","email","is_free","balance"],"title":"BaseCustomerSchema"},"BaseInvoiceSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"subscription_id":{"type":"string","format":"uuid","title":"Subscription Id"},"status":{"$ref":"#/components/schemas/InvoiceStatus"},"type":{"$ref":"#/components/schemas/InvoiceType"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"total":{"type":"integer","title":"Total"},"finalized_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finalized At"},"receipt_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Receipt Url"}},"type":"object","required":["id","subscription_id","status","type","description","total","finalized_at","receipt_url"],"title":"BaseInvoiceSchema"},"BaseLogPrettifiedSchema":{"properties":{"issue_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Issue Id"},"pretty_network_requests":{"items":{"$ref":"#/components/schemas/PrettyNetworkRequest"},"type":"array","title":"Pretty Network Requests","readOnly":true},"pretty_user_events":{"items":{"$ref":"#/components/schemas/PrettyUserAction"},"type":"array","title":"Pretty User Events","readOnly":true},"pretty_view_controller_history_events":{"items":{"$ref":"#/components/schemas/PrettyViewControllerHistory"},"type":"array","title":"Pretty View Controller History Events","readOnly":true},"pretty_system_events":{"items":{"$ref":"#/components/schemas/PrettySystemEvent"},"type":"array","title":"Pretty System Events","readOnly":true},"pretty_notification_events":{"items":{"$ref":"#/components/schemas/PrettyNotificationEvent"},"type":"array","title":"Pretty Notification Events","readOnly":true},"pretty_custom_log_events":{"items":{"$ref":"#/components/schemas/PrettyCustomLogEvent"},"type":"array","title":"Pretty Custom Log Events","readOnly":true},"pretty_console_log_events":{"items":{"$ref":"#/components/schemas/PrettyConsoleLogEvent"},"type":"array","title":"Pretty Console Log Events","readOnly":true}},"type":"object","required":["pretty_network_requests","pretty_user_events","pretty_view_controller_history_events","pretty_system_events","pretty_notification_events","pretty_custom_log_events","pretty_console_log_events"],"title":"BaseLogPrettifiedSchema"},"BasePlanSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"nickname":{"type":"string","title":"Nickname"},"amount":{"type":"integer","title":"Amount"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"interval":{"$ref":"#/components/schemas/PlanInterval"},"type":{"$ref":"#/components/schemas/ProductType"},"product_name":{"type":"string","title":"Product Name"}},"type":"object","required":["id","nickname","amount","currency","interval","type","product_name"],"title":"BasePlanSchema"},"BaseProductSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"name":{"type":"string","title":"Name"},"type":{"$ref":"#/components/schemas/ProductType"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"plans":{"items":{"$ref":"#/components/schemas/BasePlanSchema"},"type":"array","title":"Plans","default":[]}},"type":"object","required":["id","created","name","type"],"title":"BaseProductSchema"},"BaseSubscriptionItemSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"plan":{"$ref":"#/components/schemas/BasePlanSchema"},"cancelled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Cancelled At"}},"type":"object","required":["id","plan"],"title":"BaseSubscriptionItemSchema"},"BaseSubscriptionSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"active":{"type":"boolean","title":"Active"},"status":{"$ref":"#/components/schemas/SubscriptionStatus"},"current_period_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Current Period End"},"cancel_at_period_end":{"type":"boolean","title":"Cancel At Period End"},"customer_id":{"type":"string","format":"uuid","title":"Customer Id"},"items":{"items":{"$ref":"#/components/schemas/BaseSubscriptionItemSchema"},"type":"array","title":"Items","default":[]},"invoice_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Invoice Url"}},"type":"object","required":["id","created","updated","active","status","current_period_end","cancel_at_period_end","customer_id"],"title":"BaseSubscriptionSchema"},"BaseTeamInvitationSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"created":{"type":"string","format":"date-time","title":"Created"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role","readOnly":true}},"type":"object","required":["id","email","created","expires_at","role"],"title":"BaseTeamInvitationSchema"},"BaseTeamMemberSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"user":{"$ref":"#/components/schemas/MemberUserSchema"},"role":{"$ref":"#/components/schemas/TeamMemberRole"}},"type":"object","required":["id","user","role"],"title":"BaseTeamMemberSchema"},"BaseTeamSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"}},"type":"object","required":["id","name","slug","logo_url"],"title":"BaseTeamSchema"},"BaseUserSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"picture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Picture"}},"type":"object","required":["id","email","name","picture"],"title":"BaseUserSchema"},"BlackboxDeviceOrientationSchema":{"properties":{"value":{"type":"string","title":"Value"},"time_occurred":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Occurred"}},"additionalProperties":true,"type":"object","required":["value"],"title":"BlackboxDeviceOrientationSchema"},"BlackboxHistoryPointSchema":{"properties":{"time_occurred":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Occurred"},"value":{"title":"Value"}},"additionalProperties":true,"type":"object","title":"BlackboxHistoryPointSchema"},"BlackboxNetworkSchema":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"time_occurred":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Occurred"},"prettified_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prettified Type"},"prettified_network":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prettified Network"}},"additionalProperties":true,"type":"object","title":"BlackboxNetworkSchema"},"Body_import_issues_from_file_api_1_0_issue_tracking__team_id__apps__app_id__import_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_import_issues_from_file_api_1_0_issue_tracking__team_id__apps__app_id__import_post"},"Body_oauth2_revoke_auth_oauth2_revoke_post":{"properties":{"token":{"type":"string","title":"Token"},"token_type_hint":{"type":"string","title":"Token Type Hint","default":"refresh_token"}},"type":"object","required":["token"],"title":"Body_oauth2_revoke_auth_oauth2_revoke_post"},"Body_upload_app_debug_file_v1_api_1_0_crash_reporting_app_debug_file__bundle_id__post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"os":{"$ref":"#/components/schemas/OS"},"platform":{"type":"string","title":"Platform"},"app_version_name":{"type":"string","title":"App Version Name"},"app_version_code":{"type":"string","title":"App Version Code"}},"type":"object","required":["file","os","platform","app_version_name","app_version_code"],"title":"Body_upload_app_debug_file_v1_api_1_0_crash_reporting_app_debug_file__bundle_id__post"},"Body_upload_app_debug_file_v2_api_2_0_crash_reporting_app_debug_file_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"app_version_name":{"type":"string","title":"App Version Name"},"app_version_code":{"type":"string","title":"App Version Code"}},"type":"object","required":["file","app_version_name","app_version_code"],"title":"Body_upload_app_debug_file_v2_api_2_0_crash_reporting_app_debug_file_post"},"Body_upload_app_debug_files_dashboard_api_1_0_crash_reporting__team_id__apps__app_id__app_debug_file_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"app_version_name":{"type":"string","title":"App Version Name"},"app_version_code":{"type":"string","title":"App Version Code"}},"type":"object","required":["file","app_version_name","app_version_code"],"title":"Body_upload_app_debug_files_dashboard_api_1_0_crash_reporting__team_id__apps__app_id__app_debug_file_post"},"Body_upload_app_logo_api_1_0_issue_tracking__team_id__apps__app_id__logo_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_app_logo_api_1_0_issue_tracking__team_id__apps__app_id__logo_post"},"Body_upload_crash_report_api_1_0_files_crash_report_post":{"properties":{"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"}},"type":"object","title":"Body_upload_crash_report_api_1_0_files_crash_report_post"},"Body_upload_file_api_2_0_files_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_file_api_2_0_files_post"},"Body_upload_issue_file_api_1_0_files__team_id__apps__app_id__files_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_issue_file_api_1_0_files__team_id__apps__app_id__files_post"},"Body_upload_profile_photo_api_1_0_accounts_users__user_id__picture_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_profile_photo_api_1_0_accounts_users__user_id__picture_post"},"Body_upload_push_notification_auth_api_1_0_user_model__team_id__apps__app_id__push_notifications_post":{"properties":{"file":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"File"},"is_development":{"type":"boolean","title":"Is Development","default":false}},"type":"object","title":"Body_upload_push_notification_auth_api_1_0_user_model__team_id__apps__app_id__push_notifications_post"},"Body_upload_team_logo_api_1_0_accounts_teams__team_id__logo_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_team_logo_api_1_0_accounts_teams__team_id__logo_post"},"Body_upload_white_label_logo_api_1_0_white_labeling__team_id__logo_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_upload_white_label_logo_api_1_0_white_labeling__team_id__logo_post"},"BulkAddCrashGroupTagsParams":{"properties":{"crash_groups":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Crash Groups"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["crash_groups","tags"],"title":"BulkAddCrashGroupTagsParams"},"BulkAddIssueTagsParams":{"properties":{"issues":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"Issues"},"tags":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Tags"}},"type":"object","required":["issues","tags"],"title":"BulkAddIssueTagsParams"},"BulkChangeCrashGroupAssigneeParams":{"properties":{"crash_groups":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Crash Groups"},"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id"}},"type":"object","required":["crash_groups"],"title":"BulkChangeCrashGroupAssigneeParams"},"BulkChangeCrashGroupPriorityParams":{"properties":{"crash_groups":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Crash Groups"},"priority":{"$ref":"#/components/schemas/CrashGroupPriorityEnum"}},"type":"object","required":["crash_groups","priority"],"title":"BulkChangeCrashGroupPriorityParams"},"BulkChangeCrashGroupStatusParams":{"properties":{"crash_groups":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Crash Groups"},"status":{"$ref":"#/components/schemas/CrashGroupStatusEnum"}},"type":"object","required":["crash_groups","status"],"title":"BulkChangeCrashGroupStatusParams"},"BulkChangeIssueAssigneeParams":{"properties":{"issues":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Issues"},"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id"}},"type":"object","required":["issues"],"title":"BulkChangeIssueAssigneeParams"},"BulkChangeIssuePriorityParams":{"properties":{"issues":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Issues"},"priority":{"$ref":"#/components/schemas/IssuePriorityEnum"}},"type":"object","required":["issues","priority"],"title":"BulkChangeIssuePriorityParams"},"BulkChangeIssueStatusParams":{"properties":{"issues":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Issues"},"status":{"$ref":"#/components/schemas/IssueStatusEnum"}},"type":"object","required":["issues","status"],"title":"BulkChangeIssueStatusParams"},"BulkCreateIssueChatParams":{"properties":{"issues":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Issues"},"message":{"type":"string","title":"Message"},"is_note":{"type":"boolean","title":"Is Note"}},"type":"object","required":["issues","message","is_note"],"title":"BulkCreateIssueChatParams"},"BulkDeleteCrashGroupsParams":{"properties":{"crash_groups":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Crash Groups"}},"type":"object","required":["crash_groups"],"title":"BulkDeleteCrashGroupsParams"},"BulkDeleteIssuesParams":{"properties":{"issues":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"Issues"}},"type":"object","required":["issues"],"title":"BulkDeleteIssuesParams"},"BulkMarkParams":{"properties":{"issues":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Issues"},"read":{"type":"boolean","title":"Read","default":true}},"type":"object","required":["issues"],"title":"BulkMarkParams"},"CannyTokenSchema":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"CannyTokenSchema"},"ChangeCrashGroupAssigneeParams":{"properties":{"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id"}},"type":"object","title":"ChangeCrashGroupAssigneeParams"},"ChangeCrashGroupPriorityParams":{"properties":{"priority":{"$ref":"#/components/schemas/CrashGroupPriorityEnum"}},"type":"object","required":["priority"],"title":"ChangeCrashGroupPriorityParams"},"ChangeCrashGroupStatusParams":{"properties":{"status":{"$ref":"#/components/schemas/CrashGroupStatusEnum"}},"type":"object","required":["status"],"title":"ChangeCrashGroupStatusParams"},"ChangeEmailTokenParams":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"ChangeEmailTokenParams"},"ChangeIssueAssigneeParams":{"properties":{"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id"}},"type":"object","title":"ChangeIssueAssigneeParams"},"ChangeIssuePriorityParams":{"properties":{"priority":{"$ref":"#/components/schemas/IssuePriorityEnum"}},"type":"object","required":["priority"],"title":"ChangeIssuePriorityParams"},"ChangeIssueStatusParams":{"properties":{"status":{"$ref":"#/components/schemas/IssueStatusEnum"}},"type":"object","required":["status"],"title":"ChangeIssueStatusParams"},"ChangePasswordParams":{"properties":{"current_password":{"type":"string","title":"Current Password"},"new_password":{"type":"string","title":"New Password"}},"type":"object","required":["current_password","new_password"],"title":"ChangePasswordParams"},"ChangelogLinkSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"url":{"type":"string","title":"Url"}},"type":"object","required":["id","title","url"],"title":"ChangelogLinkSchema"},"ChangelogNotificationSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"is_read":{"type":"boolean","title":"Is Read"},"changelog_id":{"type":"string","format":"uuid","title":"Changelog Id"}},"type":"object","required":["id","is_read","changelog_id"],"title":"ChangelogNotificationSchema"},"ChangelogSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"links":{"items":{"$ref":"#/components/schemas/ChangelogLinkSchema"},"type":"array","title":"Links"}},"type":"object","required":["id","title","description","image_url","links"],"title":"ChangelogSchema"},"ChangelogSortKey":{"type":"string","enum":["latest","priority"],"title":"ChangelogSortKey"},"CheckCouponParams":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"CheckCouponParams"},"CheckInviteCodeParams":{"properties":{"code":{"type":"string","title":"Code"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"}},"type":"object","required":["code"],"title":"CheckInviteCodeParams"},"CheckPasswordCodeParams":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"CheckPasswordCodeParams"},"CheckoutSessionStatus":{"type":"string","enum":["pending","complete","expired"],"title":"CheckoutSessionStatus"},"ClickupFoldersSchema":{"properties":{"folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Id"},"folder_name":{"type":"string","title":"Folder Name"},"lists":{"items":{"$ref":"#/components/schemas/ClickupListSchema"},"type":"array","title":"Lists"}},"type":"object","required":["folder_id","folder_name","lists"],"title":"ClickupFoldersSchema"},"ClickupListSchema":{"properties":{"list_id":{"type":"string","title":"List Id"},"list_name":{"type":"string","title":"List Name"}},"type":"object","required":["list_id","list_name"],"title":"ClickupListSchema"},"ClickupSchema":{"properties":{"integration_layout":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Layout"},"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"active":{"type":"boolean","title":"Active"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"list_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"List Id"},"space_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Space Id"},"automatic_forward":{"type":"boolean","title":"Automatic Forward"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"type":"integer","title":"Integration Layout Version"}},"type":"object","required":["integration_layout","id","created","updated","active","app_id","list_id","space_id","automatic_forward","deactivation_reason","integration_layout_version"],"title":"ClickupSchema"},"ClickupSpaceSchema":{"properties":{"folders":{"items":{"$ref":"#/components/schemas/ClickupFoldersSchema"},"type":"array","title":"Folders"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"space_id":{"type":"string","title":"Space Id"},"space_name":{"type":"string","title":"Space Name"}},"type":"object","required":["folders","integration_id","space_id","space_name"],"title":"ClickupSpaceSchema"},"ClickupTeamSchema":{"properties":{"spaces":{"items":{"$ref":"#/components/schemas/ClickupSpaceSchema"},"type":"array","title":"Spaces"},"team_id":{"type":"string","title":"Team Id"},"team_name":{"type":"string","title":"Team Name"}},"type":"object","required":["spaces","team_id","team_name"],"title":"ClickupTeamSchema"},"CommonRepliesParameters":{"properties":{"title":{"type":"string","title":"Title"},"message":{"type":"string","title":"Message"}},"type":"object","required":["title","message"],"title":"CommonRepliesParameters"},"CommonRepliesSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"message":{"type":"string","title":"Message"}},"type":"object","required":["id","title","message"],"title":"CommonRepliesSchema"},"ConditionSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"rule":{"type":"string","format":"uuid","title":"Rule"},"type":{"type":"string","format":"uuid","title":"Type"},"args":{"additionalProperties":true,"type":"object","title":"Args"}},"type":"object","required":["id","created","updated","rule","type","args"],"title":"ConditionSchema"},"ConnectAzureProjectParams":{"properties":{"key":{"type":"string","title":"Key"},"automatic_forward":{"type":"boolean","title":"Automatic Forward","default":true}},"type":"object","required":["key"],"title":"ConnectAzureProjectParams"},"ConnectJiraProjectParams":{"properties":{"key":{"type":"string","title":"Key"},"automatic_forward":{"type":"boolean","title":"Automatic Forward","default":true},"field_mapping_enabled":{"type":"boolean","title":"Field Mapping Enabled","default":false},"two_way_sync_enabled":{"type":"boolean","title":"Two Way Sync Enabled","default":false},"integration_layout":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Integration Layout"}},"type":"object","required":["key"],"title":"ConnectJiraProjectParams"},"ConsoleLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["timestamp"],"title":"ConsoleLogItem"},"ConsoleLogParameters":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["timestamp"],"title":"ConsoleLogParameters"},"CoverageKeyValueSchema":{"properties":{"value":{"type":"string","title":"Value"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["value","count"],"title":"CoverageKeyValueSchema","description":"One value and its all-time session count for a dimension or metadata key."},"CoverageKeyValuesSchema":{"properties":{"key":{"type":"string","title":"Key"},"values":{"items":{"$ref":"#/components/schemas/CoverageKeyValueSchema"},"type":"array","title":"Values"}},"type":"object","required":["key","values"],"title":"CoverageKeyValuesSchema","description":"Response for `GET .../scoring/testing_coverage/values/{key}`."},"CrashBinaryImageSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"cpu_subtype":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cpu Subtype"},"cpu_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cpu Type"},"image_addr":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Image Addr"},"image_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Image Size"},"image_vmaddr":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Image Vmaddr"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uuid"}},"type":"object","required":["id","created","updated"],"title":"CrashBinaryImageSchema"},"CrashConsoleLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["timestamp"],"title":"CrashConsoleLogItem"},"CrashCustomLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["timestamp"],"title":"CrashCustomLogItem"},"CrashEventBlackboxSchema":{"properties":{"memory_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory Usage History"},"cpu_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cpu Usage History"},"application_memory_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Application Memory Usage History"},"disk_space_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Disk Space Usage History"},"battery_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Battery Usage History"},"network_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxNetworkSchema"},"type":"array"},{"type":"null"}],"title":"Network Usage History"},"device_orientation_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxDeviceOrientationSchema"},"type":"array"},{"type":"null"}],"title":"Device Orientation History"}},"type":"object","title":"CrashEventBlackboxSchema"},"CrashEventChatActivityEventSchema":{"properties":{"object_type":{"type":"string","title":"Object Type"},"object_data":{"additionalProperties":true,"type":"object","title":"Object Data"}},"type":"object","required":["object_type","object_data"],"title":"CrashEventChatActivityEventSchema"},"CrashEventChatActivityModifiedSchema":{"items":{"$ref":"#/components/schemas/CrashEventChatActivityEventSchema"},"type":"array","title":"CrashEventChatActivityModifiedSchema"},"CrashEventCustomFieldSchema":{"properties":{"type":{"$ref":"#/components/schemas/CrashEventCustomFieldType"},"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"}},"type":"object","required":["type","label","value"],"title":"CrashEventCustomFieldSchema"},"CrashEventCustomFieldType":{"type":"string","enum":["title","email","picker","text_input"],"title":"CrashEventCustomFieldType"},"CrashEventFileSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"type":"object","required":["id","created","updated"],"title":"CrashEventFileSchema"},"CrashEventListSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"issue_reported_time":{"type":"string","format":"date-time","title":"Issue Reported Time"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"files":{"items":{"$ref":"#/components/schemas/CrashEventFileSchema"},"type":"array","title":"Files","default":[]},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"current_view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current View"},"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"custom_fields":{"items":{"$ref":"#/components/schemas/CrashEventCustomFieldSchema"},"type":"array","title":"Custom Fields","default":[]},"fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fullstory Session"},"app_user":{"anyOf":[{"$ref":"#/components/schemas/AppUserSharedSchema"},{"type":"null"}]},"app":{"$ref":"#/components/schemas/AppSchema"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"device":{"type":"string","title":"Device"},"cpu_arch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cpu Arch"},"os_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Name"},"os_version":{"type":"string","title":"Os Version"},"tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tester Email"},"pretty_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Title","readOnly":true},"pretty_app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty App Version","readOnly":true},"pretty_device_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Device Name","readOnly":true},"pretty_os":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Os","readOnly":true},"pretty_tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Tester Email","readOnly":true}},"type":"object","required":["id","issue_reported_time","app_id","created","updated","app","device","os_version","pretty_title","pretty_app_version","pretty_device_name","pretty_os","pretty_tester_email"],"title":"CrashEventListSchema"},"CrashEventLogPrettifiedSchema":{"properties":{"crash_event_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Crash Event Id"},"pretty_network_requests":{"items":{"$ref":"#/components/schemas/CrashPrettyNetworkRequest"},"type":"array","title":"Pretty Network Requests","readOnly":true},"pretty_user_events":{"items":{"$ref":"#/components/schemas/CrashPrettyUserAction"},"type":"array","title":"Pretty User Events","readOnly":true},"pretty_view_controller_history_events":{"items":{"$ref":"#/components/schemas/CrashPrettyViewControllerHistory"},"type":"array","title":"Pretty View Controller History Events","readOnly":true},"pretty_system_events":{"items":{"$ref":"#/components/schemas/CrashPrettySystemEvent"},"type":"array","title":"Pretty System Events","readOnly":true},"pretty_notification_events":{"items":{"$ref":"#/components/schemas/CrashPrettyNotificationEvent"},"type":"array","title":"Pretty Notification Events","readOnly":true},"pretty_custom_log_events":{"items":{"$ref":"#/components/schemas/CrashPrettyCustomLogEvent"},"type":"array","title":"Pretty Custom Log Events","readOnly":true},"pretty_console_log_events":{"items":{"$ref":"#/components/schemas/CrashPrettyConsoleLogEvent"},"type":"array","title":"Pretty Console Log Events","readOnly":true}},"type":"object","required":["pretty_network_requests","pretty_user_events","pretty_view_controller_history_events","pretty_system_events","pretty_notification_events","pretty_custom_log_events","pretty_console_log_events"],"title":"CrashEventLogPrettifiedSchema"},"CrashEventPermissionStateSchema":{"properties":{"name":{"type":"string","title":"Name"},"state":{"type":"string","title":"State"},"pretty_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Name"},"pretty_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty State"}},"type":"object","required":["name","state"],"title":"CrashEventPermissionStateSchema"},"CrashEventPrettifiedSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"app":{"$ref":"#/components/schemas/AppSchema"},"app_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App User Id"},"app_user":{"anyOf":[{"$ref":"#/components/schemas/AppUserSharedSchema"},{"type":"null"}]},"crash_group_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Crash Group Id"},"cluster_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cluster Id"},"report_type":{"type":"string","enum":["fatal","non_fatal","anr"]},"is_processed":{"type":"boolean","title":"Is Processed","default":false},"anr_event_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anr Event Kind"},"anr_duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Anr Duration"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"active":{"type":"boolean","title":"Active"},"issue_reported_time":{"type":"string","format":"date-time","title":"Issue Reported Time"},"files":{"items":{"$ref":"#/components/schemas/CrashEventFileSchema"},"type":"array","title":"Files","default":[]},"custom_fields":{"items":{"$ref":"#/components/schemas/CrashEventCustomFieldSchema"},"type":"array","title":"Custom Fields","default":[]},"permissions":{"items":{"$ref":"#/components/schemas/CrashEventPermissionStateSchema"},"type":"array","title":"Permissions","default":[]},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"session_replay_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Replay Url"},"device":{"type":"string","title":"Device"},"cpu_arch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cpu Arch"},"os_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Name"},"os_version":{"type":"string","title":"Os Version"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version"},"xcode_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Version"},"xcode_build":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Build"},"timezone":{"type":"string","title":"Timezone"},"locale":{"type":"string","title":"Locale"},"battery_level":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Battery Level"},"battery_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Battery Status"},"low_power_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Low Power Mode"},"nfc":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nfc"},"font_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Font Scale"},"available_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Disk Space"},"used_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Disk Space"},"available_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Memory"},"used_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Memory"},"used_application_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Application Memory"},"device_orientation":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Orientation"},"screen_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Height"},"screen_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Width"},"screen_density":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Density"},"browser_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Name"},"browser_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Version"},"browser_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Width"},"browser_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Height"},"cookies_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cookies Enabled"},"is_mobile":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Mobile"},"network_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Type"},"network_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Name"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current View"},"authentication":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Authentication"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fullstory Session"},"tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tester Email"},"log":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Log"},"blackbox":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Blackbox"},"threads":{"items":{"$ref":"#/components/schemas/CrashThreadSchema"},"type":"array","title":"Threads","default":[]},"binary_images":{"items":{"$ref":"#/components/schemas/CrashBinaryImageSchema"},"type":"array","title":"Binary Images","default":[]},"previous_event":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Previous Event"},"next_event":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next Event"},"pretty_battery_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Battery Status","readOnly":true},"pretty_low_power_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Low Power Mode","readOnly":true},"pretty_memory_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Memory Status","readOnly":true},"pretty_used_application_memory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Used Application Memory","readOnly":true},"pretty_storage_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Storage Status","readOnly":true},"pretty_network_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Network Status","readOnly":true},"searchable_network_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Searchable Network Status","readOnly":true},"pretty_cookies_enabled":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Cookies Enabled","readOnly":true},"pretty_is_mobile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Is Mobile","readOnly":true},"pretty_location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Location","readOnly":true},"pretty_os":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Os","readOnly":true},"pretty_browser":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Browser","readOnly":true},"pretty_browser_resolution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Browser Resolution","readOnly":true},"pretty_app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty App Version","readOnly":true},"pretty_xcode_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Xcode Version","readOnly":true},"pretty_device_orientation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Device Orientation","readOnly":true},"pretty_is_portrait_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pretty Is Portrait Mode","readOnly":true},"pretty_screen_density":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Pretty Screen Density","readOnly":true},"pretty_authentication":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Authentication","readOnly":true},"pretty_device_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Device Name","readOnly":true},"pretty_resolution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Resolution","readOnly":true},"pretty_screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Screenshot Url","readOnly":true},"pretty_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Title","readOnly":true},"pretty_tags":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Tags","readOnly":true},"pretty_tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Tester Email","readOnly":true},"pretty_locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Locale","readOnly":true},"pretty_timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Timezone","readOnly":true},"pretty_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Time","readOnly":true},"pretty_nfc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Nfc","readOnly":true},"pretty_font_scale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Font Scale","readOnly":true},"pretty_fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Fullstory Session","readOnly":true}},"type":"object","required":["id","app_id","app","report_type","created","updated","active","issue_reported_time","device","os_version","timezone","locale","pretty_battery_status","pretty_low_power_mode","pretty_memory_status","pretty_used_application_memory","pretty_storage_status","pretty_network_status","searchable_network_status","pretty_cookies_enabled","pretty_is_mobile","pretty_location","pretty_os","pretty_browser","pretty_browser_resolution","pretty_app_version","pretty_xcode_version","pretty_device_orientation","pretty_is_portrait_mode","pretty_screen_density","pretty_authentication","pretty_device_name","pretty_resolution","pretty_screenshot_url","pretty_title","pretty_tags","pretty_tester_email","pretty_locale","pretty_timezone","pretty_time","pretty_nfc","pretty_font_scale","pretty_fullstory_session"],"title":"CrashEventPrettifiedSchema"},"CrashExceptionSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"index":{"type":"integer","title":"Index"},"exception_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exception Type"},"exception_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exception Message"},"is_blamed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Blamed"},"frames":{"items":{"$ref":"#/components/schemas/CrashFrameSchema"},"type":"array","title":"Frames","default":[]}},"type":"object","required":["id","created","updated","index"],"title":"CrashExceptionSchema"},"CrashFrameSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"index":{"type":"integer","title":"Index"},"object_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Object Name"},"instruction_addr":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Instruction Addr"},"symbol_addr":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Symbol Addr"},"object_addr":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Object Addr"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"symbol_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol Name"},"offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset"},"file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File"},"line":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Line"},"is_blamed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Blamed"},"is_application":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Application"}},"type":"object","required":["id","created","updated","index"],"title":"CrashFrameSchema"},"CrashFreeSessionsSchema":{"properties":{"total_sessions":{"type":"integer","title":"Total Sessions"},"crash_sessions":{"type":"integer","title":"Crash Sessions"},"crash_free_sessions":{"type":"integer","title":"Crash Free Sessions"},"crash_free_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Crash Free Rate","description":"Crash-free sessions as a percentage (crash_free / total * 100); null when there are no counted sessions."},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"Crash-free health score on the 0-10 scale (one decimal); null when there are no counted sessions."}},"type":"object","required":["total_sessions","crash_sessions","crash_free_sessions"],"title":"CrashFreeSessionsSchema"},"CrashGroupActivitySchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"activity_description":{"type":"string","title":"Activity Description"},"activity_type":{"type":"string","title":"Activity Type"},"activity_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activity Url"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"}},"type":"object","required":["id","activity_description","activity_type","created","updated"],"title":"CrashGroupActivitySchema"},"CrashGroupAssigneeSchema":{"properties":{"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id"}},"type":"object","title":"CrashGroupAssigneeSchema"},"CrashGroupFilterItem":{"properties":{"filter_type":{"type":"string","title":"Filter Type"},"filter_value":{"type":"string","title":"Filter Value"},"filter_operator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter Operator"},"field_name":{"type":"string","title":"Field Name"},"field_value":{"type":"string","title":"Field Value"}},"type":"object","required":["filter_type","filter_value","field_name","field_value"],"title":"CrashGroupFilterItem"},"CrashGroupFilterSchema":{"properties":{"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"}},"type":"object","required":["name","value"],"title":"CrashGroupFilterSchema"},"CrashGroupListInfoSchema":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/CrashGroupSchema"},"type":"array","title":"Items"}},"type":"object","required":["total","items"],"title":"CrashGroupListInfoSchema"},"CrashGroupPriorityEnum":{"type":"string","enum":["Low","Medium","High"],"title":"CrashGroupPriorityEnum"},"CrashGroupPrioritySchema":{"properties":{"priority":{"$ref":"#/components/schemas/CrashGroupPriorityEnum"}},"type":"object","required":["priority"],"title":"CrashGroupPrioritySchema"},"CrashGroupSchema":{"properties":{"app_id":{"type":"string","format":"uuid","title":"App Id"},"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"active":{"type":"boolean","title":"Active"},"key":{"type":"integer","title":"Key"},"report_type":{"type":"string","enum":["fatal","non_fatal","anr"]},"exception_type":{"type":"string","title":"Exception Type"},"title":{"type":"string","title":"Title"},"subtitle":{"type":"string","title":"Subtitle"},"status":{"anyOf":[{"$ref":"#/components/schemas/CrashGroupStatusSchema"},{"type":"null"}]},"assignee":{"anyOf":[{"$ref":"#/components/schemas/CrashGroupAssigneeSchema"},{"type":"null"}]},"priority":{"anyOf":[{"$ref":"#/components/schemas/CrashGroupPrioritySchema"},{"type":"null"}]},"tags":{"items":{"$ref":"#/components/schemas/TagSchema"},"type":"array","title":"Tags","default":[]},"last_event":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Last Event"},"crash_events_count":{"type":"integer","title":"Crash Events Count","default":0},"linked_crash_groups_count":{"type":"integer","title":"Linked Crash Groups Count","default":0}},"type":"object","required":["app_id","id","created","updated","active","key","report_type","exception_type","title","subtitle"],"title":"CrashGroupSchema"},"CrashGroupSearchFilterParams":{"properties":{"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","default":20},"offset":{"type":"integer","minimum":0.0,"title":"Offset","default":0},"filters":{"items":{"$ref":"#/components/schemas/CrashGroupFilterItem"},"type":"array","title":"Filters"},"sort":{"type":"string","title":"Sort","default":"key"}},"type":"object","required":["filters"],"title":"CrashGroupSearchFilterParams"},"CrashGroupStatusEnum":{"type":"string","enum":["New","In progress","Closed","Locked"],"title":"CrashGroupStatusEnum"},"CrashGroupStatusSchema":{"properties":{"status":{"$ref":"#/components/schemas/CrashGroupStatusEnum"}},"type":"object","required":["status"],"title":"CrashGroupStatusSchema"},"CrashNetworkRequestLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"status_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Code"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"request_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Body"},"request_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Headers"},"response_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Body"},"response_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Headers"},"duration":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration"}},"type":"object","required":["timestamp"],"title":"CrashNetworkRequestLogItem"},"CrashNotificationLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["timestamp"],"title":"CrashNotificationLogItem"},"CrashPrettyConsoleLogEvent":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","type","message","icon_url"],"title":"CrashPrettyConsoleLogEvent"},"CrashPrettyCustomLogEvent":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","level","message","icon_url"],"title":"CrashPrettyCustomLogEvent"},"CrashPrettyNetworkRequest":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"status_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Code"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"request_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Body"},"request_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Headers"},"response_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Body"},"response_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Headers"},"duration":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration"}},"type":"object","required":["id","timestamp","method","status_code","url","request_body","request_headers","response_body","response_headers","duration"],"title":"CrashPrettyNetworkRequest"},"CrashPrettyNotificationEvent":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","title","description","icon_url"],"title":"CrashPrettyNotificationEvent"},"CrashPrettySystemEvent":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"description":{"type":"string","title":"Description"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","description","icon_url"],"title":"CrashPrettySystemEvent"},"CrashPrettyUserAction":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"property":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property"},"property_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property Type"},"touch_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Touch Type"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","class_name","property","property_type","touch_type","description","icon_url"],"title":"CrashPrettyUserAction"},"CrashPrettyViewControllerHistory":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"description":{"type":"string","title":"Description"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","description","icon_url"],"title":"CrashPrettyViewControllerHistory"},"CrashSystemEventLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},"type":"object","required":["timestamp"],"title":"CrashSystemEventLogItem"},"CrashThreadSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"thread_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Name"},"is_blamed":{"type":"boolean","title":"Is Blamed"},"exceptions":{"items":{"$ref":"#/components/schemas/CrashExceptionSchema"},"type":"array","title":"Exceptions","default":[]}},"type":"object","required":["id","created","updated","is_blamed"],"title":"CrashThreadSchema"},"CrashType":{"type":"string","enum":["App crashed with uncaught exception","App crashed with caught exception","App stopped responding"],"title":"CrashType"},"CrashUserActionLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"property":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property"},"property_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property Type"},"touch_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Touch Type"}},"type":"object","required":["timestamp"],"title":"CrashUserActionLogItem"},"CrashViewControllerLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"view_controller":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View Controller"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"}},"type":"object","required":["timestamp"],"title":"CrashViewControllerLogItem"},"CrashVolumeSchema":{"properties":{"received_crash_groups":{"type":"integer","title":"Received Crash Groups"},"closed_crash_groups":{"type":"integer","title":"Closed Crash Groups"},"received_crash_events":{"type":"integer","title":"Received Crash Events"}},"type":"object","required":["received_crash_groups","closed_crash_groups","received_crash_events"],"title":"CrashVolumeSchema"},"CreateActionParams":{"properties":{"type_id":{"type":"string","format":"uuid","title":"Type Id"},"args":{"additionalProperties":true,"type":"object","title":"Args"}},"type":"object","required":["type_id","args"],"title":"CreateActionParams"},"CreateApiKeyParams":{"properties":{"type":{"$ref":"#/components/schemas/ApiKeyType","default":"sdk"}},"type":"object","title":"CreateApiKeyParams"},"CreateAppDashboardParams":{"properties":{"app_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Name"},"platform_id":{"type":"string","format":"uuid","title":"Platform Id"},"bundle_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bundle Id"},"is_extension":{"type":"boolean","title":"Is Extension","default":false}},"type":"object","required":["platform_id"],"title":"CreateAppDashboardParams"},"CreateAppDomainParams":{"properties":{"verification_email":{"type":"string","format":"email","title":"Verification Email"},"domain":{"type":"string","title":"Domain"}},"type":"object","required":["verification_email","domain"],"title":"CreateAppDomainParams"},"CreateAppUserParameters":{"properties":{"end_user_id":{"type":"string","title":"End User Id"},"metadata_":{"additionalProperties":true,"type":"object","title":"Metadata","default":{}},"device_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Token"}},"type":"object","required":["end_user_id"],"title":"CreateAppUserParameters"},"CreateApprovedDomainParams":{"properties":{"verification_email":{"type":"string","format":"email","title":"Verification Email"},"name":{"type":"string","title":"Name"}},"type":"object","required":["verification_email","name"],"title":"CreateApprovedDomainParams"},"CreateAzureParams":{"properties":{"organization_url":{"type":"string","maxLength":255,"title":"Organization Url"},"project_name":{"type":"string","maxLength":255,"title":"Project Name"},"access_token":{"type":"string","maxLength":255,"title":"Access Token"}},"type":"object","required":["organization_url","project_name","access_token"],"title":"CreateAzureParams"},"CreateConditionParams":{"properties":{"type_id":{"type":"string","format":"uuid","title":"Type Id"},"args":{"additionalProperties":true,"type":"object","title":"Args"}},"type":"object","required":["type_id","args"],"title":"CreateConditionParams"},"CreateCrashEventChatMessageParams":{"properties":{"message":{"type":"string","title":"Message"},"is_note":{"type":"boolean","title":"Is Note","default":true}},"type":"object","required":["message"],"title":"CreateCrashEventChatMessageParams"},"CreateCrashParams":{"properties":{"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"session_replay_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Replay Url"},"device":{"type":"string","title":"Device","default":""},"cpu_arch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cpu Arch"},"os_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Name"},"os_version":{"type":"string","title":"Os Version","default":""},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version"},"xcode_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Version"},"xcode_build":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Build"},"timezone":{"type":"string","title":"Timezone","default":""},"locale":{"type":"string","title":"Locale","default":""},"battery_level":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Battery Level"},"battery_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Battery Status"},"low_power_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Low Power Mode"},"nfc":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nfc"},"font_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Font Scale"},"available_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Disk Space"},"used_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Disk Space"},"available_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Memory"},"used_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Memory"},"used_application_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Application Memory"},"device_orientation":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Orientation"},"screen_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Height"},"screen_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Width"},"screen_density":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Density"},"browser_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Name"},"browser_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Version"},"browser_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Width"},"browser_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Height"},"cookies_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cookies Enabled"},"is_mobile":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Mobile"},"network_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Type"},"network_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Name"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current View"},"authentication":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Authentication"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fullstory Session"},"tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tester Email"},"report_type":{"title":"Report Type"},"anr_event_kind":{"title":"Anr Event Kind"},"anr_duration":{"title":"Anr Duration"},"issue_reported_time":{"type":"string","format":"date-time","title":"Issue Reported Time"},"app_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App User Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"cluster_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cluster Id"},"files":{"items":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"}]},"type":"array","title":"Files"},"permissions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Permissions"},"custom_fields":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Custom Fields"},"log":{"anyOf":[{"$ref":"#/components/schemas/ActivityHistoryParameters"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Log"},"blackbox":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Blackbox"},"threads":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Threads"},"binary_images":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Binary Images"}},"type":"object","required":["report_type"],"title":"CreateCrashParams"},"CreateCrashV1Params":{"properties":{"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"session_replay_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Replay Url"},"device":{"type":"string","title":"Device","default":""},"cpu_arch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cpu Arch"},"os_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Name"},"os_version":{"type":"string","title":"Os Version","default":""},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version"},"xcode_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Version"},"xcode_build":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Build"},"timezone":{"type":"string","title":"Timezone","default":""},"locale":{"type":"string","title":"Locale","default":""},"battery_level":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Battery Level"},"battery_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Battery Status"},"low_power_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Low Power Mode"},"nfc":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nfc"},"font_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Font Scale"},"available_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Disk Space"},"used_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Disk Space"},"available_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Memory"},"used_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Memory"},"used_application_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Application Memory"},"device_orientation":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Orientation"},"screen_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Height"},"screen_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Width"},"screen_density":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Density"},"browser_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Name"},"browser_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Version"},"browser_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Width"},"browser_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Height"},"cookies_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cookies Enabled"},"is_mobile":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Mobile"},"network_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Type"},"network_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Name"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current View"},"authentication":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Authentication"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fullstory Session"},"tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tester Email"},"report_type":{"title":"Report Type"},"anr_event_kind":{"title":"Anr Event Kind"},"anr_duration":{"title":"Anr Duration"},"issue_reported_time":{"type":"string","format":"date-time","title":"Issue Reported Time"},"app_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App User Id"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"cluster_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cluster Id"},"files":{"items":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"}]},"type":"array","title":"Files"},"permissions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Permissions"},"custom_fields":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Custom Fields"},"log":{"anyOf":[{"$ref":"#/components/schemas/ActivityHistoryParameters"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Log"},"blackbox":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Blackbox"},"threads":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Threads"},"binary_images":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Binary Images"},"os":{"$ref":"#/components/schemas/OS"},"platform":{"type":"string","title":"Platform"}},"type":"object","required":["report_type","os","platform"],"title":"CreateCrashV1Params"},"CreateIssueChatMessageParams":{"properties":{"message":{"type":"string","title":"Message"},"is_note":{"type":"boolean","title":"Is Note","default":true}},"type":"object","required":["message"],"title":"CreateIssueChatMessageParams"},"CreateJiraParams":{"properties":{"client_id":{"type":"string","title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"server_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Server Url"}},"type":"object","required":["client_id","redirect_uri"],"title":"CreateJiraParams"},"CreateRuleParams":{"properties":{"name":{"type":"string","title":"Name"},"module":{"$ref":"#/components/schemas/RuleModule"},"active":{"type":"boolean","title":"Active","default":false},"trigger":{"$ref":"#/components/schemas/CreateTriggerParams"},"conditions":{"items":{"$ref":"#/components/schemas/CreateConditionParams"},"type":"array","title":"Conditions"},"actions":{"items":{"$ref":"#/components/schemas/CreateActionParams"},"type":"array","title":"Actions"}},"type":"object","required":["name","module","trigger","conditions","actions"],"title":"CreateRuleParams"},"CreateSdkIssueParams":{"properties":{"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"session_replay_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Replay Url"},"device":{"type":"string","title":"Device","default":""},"cpu_arch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cpu Arch"},"os_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Name"},"os_version":{"type":"string","title":"Os Version","default":""},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version"},"xcode_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Version"},"xcode_build":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Build"},"timezone":{"type":"string","title":"Timezone","default":""},"locale":{"type":"string","title":"Locale","default":""},"battery_level":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Battery Level"},"battery_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Battery Status"},"low_power_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Low Power Mode"},"nfc":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nfc"},"font_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Font Scale"},"available_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Disk Space"},"used_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Disk Space"},"available_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Memory"},"used_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Memory"},"used_application_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Application Memory"},"device_orientation":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Orientation"},"screen_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Height"},"screen_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Width"},"screen_density":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Density"},"browser_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Name"},"browser_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Version"},"browser_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Width"},"browser_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Height"},"cookies_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cookies Enabled"},"is_mobile":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Mobile"},"network_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Type"},"network_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Name"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current View"},"authentication":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Authentication"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fullstory Session"},"tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tester Email"},"report_type":{"$ref":"#/components/schemas/ReportType","default":"manual"},"issue_reported_time":{"type":"string","format":"date-time","title":"Issue Reported Time"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"app_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App User Id"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"chat_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Message"},"quick_facts":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quick Facts"},"custom_fields":{"items":{"$ref":"#/components/schemas/IssueCustomFieldParams"},"type":"array","title":"Custom Fields"},"files":{"items":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"}]},"type":"array","title":"Files"},"permissions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Permissions"},"blackbox":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Blackbox"},"log":{"anyOf":[{"$ref":"#/components/schemas/ActivityHistoryParameters"},{"type":"null"}]}},"type":"object","title":"CreateSdkIssueParams"},"CreateSdkV1AppParams":{"properties":{"os":{"$ref":"#/components/schemas/OS"},"platform":{"type":"string","title":"Platform"},"bundle_id":{"type":"string","title":"Bundle Id"},"check_archived":{"type":"boolean","title":"Check Archived","default":false}},"type":"object","required":["os","platform","bundle_id"],"title":"CreateSdkV1AppParams"},"CreateSdkV1IssueParams":{"properties":{"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"session_replay_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Replay Url"},"device":{"type":"string","title":"Device","default":""},"cpu_arch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cpu Arch"},"os_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Name"},"os_version":{"type":"string","title":"Os Version","default":""},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version"},"xcode_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Version"},"xcode_build":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Build"},"timezone":{"type":"string","title":"Timezone","default":""},"locale":{"type":"string","title":"Locale","default":""},"battery_level":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Battery Level"},"battery_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Battery Status"},"low_power_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Low Power Mode"},"nfc":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nfc"},"font_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Font Scale"},"available_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Disk Space"},"used_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Disk Space"},"available_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Memory"},"used_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Memory"},"used_application_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Application Memory"},"device_orientation":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Orientation"},"screen_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Height"},"screen_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Width"},"screen_density":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Density"},"browser_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Name"},"browser_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Version"},"browser_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Width"},"browser_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Height"},"cookies_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cookies Enabled"},"is_mobile":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Mobile"},"network_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Type"},"network_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Name"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current View"},"authentication":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Authentication"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fullstory Session"},"tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tester Email"},"report_type":{"$ref":"#/components/schemas/ReportType","default":"manual"},"issue_reported_time":{"type":"string","format":"date-time","title":"Issue Reported Time"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"app_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App User Id"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"chat_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Message"},"quick_facts":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quick Facts"},"custom_fields":{"items":{"$ref":"#/components/schemas/IssueCustomFieldParams"},"type":"array","title":"Custom Fields"},"files":{"items":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"}]},"type":"array","title":"Files"},"permissions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Permissions"},"blackbox":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Blackbox"},"log":{"anyOf":[{"$ref":"#/components/schemas/ActivityHistoryParameters"},{"type":"null"}]},"os":{"$ref":"#/components/schemas/OS"},"platform":{"type":"string","title":"Platform"}},"type":"object","required":["os","platform"],"title":"CreateSdkV1IssueParams"},"CreateSlackParams":{"properties":{"channel_name":{"type":"string","maxLength":255,"title":"Channel Name"},"webhook_url":{"type":"string","maxLength":255,"title":"Webhook Url"},"user":{"type":"string","maxLength":255,"title":"User"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"}},"type":"object","required":["channel_name","webhook_url","user"],"title":"CreateSlackParams"},"CreateTagParams":{"properties":{"tags":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Tags"}},"type":"object","required":["tags"],"title":"CreateTagParams"},"CreateTeamParams":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"}},"type":"object","required":["name"],"title":"CreateTeamParams"},"CreateTicketParams":{"properties":{"title":{"type":"string","title":"Title"},"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id"},"status":{"$ref":"#/components/schemas/IssueStatusEnum","default":"New"},"priority":{"$ref":"#/components/schemas/IssuePriorityEnum","default":"Low"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"files":{"items":{"type":"string"},"type":"array","title":"Files"},"comments":{"items":{"type":"string"},"type":"array","title":"Comments"},"os_version":{"type":"string","title":"Os Version","default":""},"os_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Name"},"device":{"type":"string","title":"Device","default":""},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"current_view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current View"},"browser_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Name"},"browser_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Version"}},"type":"object","required":["title"],"title":"CreateTicketParams"},"CreateTrelloParams":{"properties":{"api_key":{"type":"string","maxLength":255,"title":"Api Key"},"api_token":{"type":"string","maxLength":255,"title":"Api Token"}},"type":"object","required":["api_key","api_token"],"title":"CreateTrelloParams"},"CreateTriggerParams":{"properties":{"type_id":{"type":"string","format":"uuid","title":"Type Id"}},"type":"object","required":["type_id"],"title":"CreateTriggerParams"},"CreateWebhookParams":{"properties":{"webhook_url":{"type":"string","maxLength":1024,"minLength":1,"format":"uri","title":"Webhook Url"}},"type":"object","required":["webhook_url"],"title":"CreateWebhookParams"},"CreateZapierParams":{"properties":{"webhook_url":{"type":"string","maxLength":255,"minLength":1,"format":"uri","title":"Webhook Url"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"integration_layout":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Integration Layout"}},"type":"object","required":["webhook_url"],"title":"CreateZapierParams"},"CrmResponseSchema":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"CrmResponseSchema"},"CurrentDurationSchema":{"properties":{"first_ticket_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Ticket At"},"last_ticket_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Ticket At"},"duration_days":{"type":"integer","title":"Duration Days"}},"type":"object","required":["duration_days"],"title":"CurrentDurationSchema"},"CustomFieldSchema":{"properties":{"type":{"$ref":"#/components/schemas/IssueCustomFieldType"},"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"}},"type":"object","required":["type","label","value"],"title":"CustomFieldSchema"},"CustomLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["timestamp"],"title":"CustomLogItem"},"CustomLogParameters":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["timestamp"],"title":"CustomLogParameters"},"DescriptionSuggestionSchema":{"properties":{"description":{"type":"string","title":"Description"},"steps_to_reproduce":{"items":{"type":"string"},"type":"array","title":"Steps To Reproduce"}},"type":"object","required":["description","steps_to_reproduce"],"title":"DescriptionSuggestionSchema"},"DetailedTeamSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings"},"members":{"items":{"$ref":"#/components/schemas/BaseTeamMemberSchema"},"type":"array","title":"Members","default":[]},"invitations":{"items":{"$ref":"#/components/schemas/BaseTeamInvitationSchema"},"type":"array","title":"Invitations","default":[]},"unique_devices":{"type":"integer","title":"Unique Devices","default":0},"is_data_available":{"type":"boolean","title":"Is Data Available","default":true},"has_subscription":{"type":"boolean","title":"Has Subscription","default":false}},"type":"object","required":["id","name","slug","logo_url","created","updated"],"title":"DetailedTeamSchema"},"EventTypeSchema":{"properties":{"name":{"type":"string","title":"Name"}},"type":"object","required":["name"],"title":"EventTypeSchema"},"FeedbackVolumeSchema":{"properties":{"received_feedback_tickets":{"type":"integer","title":"Received Feedback Tickets"},"closed_feedback_tickets":{"type":"integer","title":"Closed Feedback Tickets"},"high_priority_tickets":{"type":"integer","title":"High Priority Tickets"},"closed_high_priority_tickets":{"type":"integer","title":"Closed High Priority Tickets"}},"type":"object","required":["received_feedback_tickets","closed_feedback_tickets","high_priority_tickets","closed_high_priority_tickets"],"title":"FeedbackVolumeSchema"},"ForgotPasswordParams":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"ForgotPasswordParams"},"FreeTeamsResponseSchema":{"properties":{"count":{"type":"integer","title":"Count"}},"type":"object","required":["count"],"title":"FreeTeamsResponseSchema"},"GitHubProjectSchema":{"properties":{"repositories":{"items":{"$ref":"#/components/schemas/GitHubRepositorySchema"},"type":"array","title":"Repositories"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"login":{"type":"string","title":"Login"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"}},"type":"object","required":["repositories","integration_id","login","next_page"],"title":"GitHubProjectSchema"},"GitHubRepositorySchema":{"properties":{"repository_id":{"type":"string","title":"Repository Id"},"repository_name":{"type":"string","title":"Repository Name"}},"type":"object","required":["repository_id","repository_name"],"title":"GitHubRepositorySchema"},"GithubSchema":{"properties":{"integration_layout":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Layout"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"repository_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repository Id"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["integration_layout","id","created","updated","active","app_id","repository_id","automatic_forward","deactivation_reason","integration_layout_version"],"title":"GithubSchema"},"GoogleAuthParams":{"properties":{"token":{"type":"string","title":"Token"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"client_id":{"type":"string","title":"Client Id"},"utm_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Source"},"utm_medium":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Medium"},"utm_campaign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Campaign"},"utm_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Content"},"utm_term":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Term"},"google_analytics_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Google Analytics Id"}},"type":"object","required":["token","redirect_uri","client_id"],"title":"GoogleAuthParams"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IntegrateAsanaParams":{"properties":{"project_id":{"type":"string","title":"Project Id"},"section_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Section Id"}},"type":"object","required":["project_id"],"title":"IntegrateAsanaParams"},"IntegrateClickupParams":{"properties":{"automatic_forward":{"type":"boolean","title":"Automatic Forward"},"list_id":{"type":"string","title":"List Id"},"space_id":{"type":"string","title":"Space Id"}},"type":"object","required":["automatic_forward","list_id","space_id"],"title":"IntegrateClickupParams"},"IntegrateGithubParams":{"properties":{"repository_id":{"type":"string","title":"Repository Id"}},"type":"object","required":["repository_id"],"title":"IntegrateGithubParams"},"IntegrateLinearParams":{"properties":{"team_id":{"type":"string","format":"uuid","title":"Team Id"},"project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Project Id"},"webhook":{"type":"boolean","title":"Webhook","default":false}},"type":"object","required":["team_id"],"title":"IntegrateLinearParams"},"IntegrateNotionParams":{"properties":{"database_id":{"type":"string","title":"Database Id"},"automatic_forward":{"type":"boolean","title":"Automatic Forward"}},"type":"object","required":["database_id","automatic_forward"],"title":"IntegrateNotionParams"},"IntegrateTrelloParams":{"properties":{"automatic_forward":{"type":"boolean","title":"Automatic Forward"},"board_id":{"type":"string","title":"Board Id"},"list_id":{"type":"string","title":"List Id"}},"type":"object","required":["automatic_forward","board_id","list_id"],"title":"IntegrateTrelloParams"},"InviteWithTokenSchema":{"properties":{"token":{"$ref":"#/components/schemas/OAuthTokenSchema"},"team_info":{"$ref":"#/components/schemas/TeamInviteInfoSchema"}},"type":"object","required":["token","team_info"],"title":"InviteWithTokenSchema","description":"Returned when an invite is auto-accepted and a token is issued alongside team info."},"InvoiceStatus":{"type":"string","enum":["draft","open","paid","void","uncollectible"],"title":"InvoiceStatus"},"InvoiceType":{"type":"string","enum":["subscription","one_off"],"title":"InvoiceType"},"IssueAssigneeSchema":{"properties":{"assignee_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Assignee Id"},"updated":{"type":"string","format":"date-time","title":"Updated"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["assignee_id","updated"],"title":"IssueAssigneeSchema"},"IssueBlackboxSchema":{"properties":{"memory_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Memory Usage History"},"cpu_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Cpu Usage History"},"application_memory_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Application Memory Usage History"},"disk_space_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Disk Space Usage History"},"battery_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxHistoryPointSchema"},"type":"array"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Battery Usage History"},"network_usage_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxNetworkSchema"},"type":"array"},{"type":"null"}],"title":"Network Usage History"},"device_orientation_history":{"anyOf":[{"items":{"$ref":"#/components/schemas/BlackboxDeviceOrientationSchema"},"type":"array"},{"type":"null"}],"title":"Device Orientation History"}},"type":"object","title":"IssueBlackboxSchema"},"IssueChatActivityEventSchema":{"properties":{"object_type":{"type":"string","title":"Object Type"},"object_data":{"additionalProperties":true,"type":"object","title":"Object Data"}},"type":"object","required":["object_type","object_data"],"title":"IssueChatActivityEventSchema"},"IssueCustomFieldParams":{"properties":{"type":{"$ref":"#/components/schemas/IssueCustomFieldType"},"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"}},"type":"object","required":["type","label","value"],"title":"IssueCustomFieldParams"},"IssueCustomFieldType":{"type":"string","enum":["title","email","picker","text_input"],"title":"IssueCustomFieldType"},"IssueFileSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"url":{"type":"string","title":"Url"},"filename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filename"}},"type":"object","required":["id","created","updated","url"],"title":"IssueFileSchema"},"IssueFilterItem":{"properties":{"filter_type":{"type":"string","title":"Filter Type"},"filter_value":{"type":"string","title":"Filter Value"},"filter_operator":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter Operator"},"field_name":{"type":"string","title":"Field Name"},"field_value":{"type":"string","title":"Field Value"}},"type":"object","required":["filter_type","filter_value","field_name","field_value"],"title":"IssueFilterItem"},"IssueFilterSchema":{"properties":{"name":{"type":"string","title":"Name"},"value":{"type":"string","title":"Value"}},"type":"object","required":["name","value"],"title":"IssueFilterSchema"},"IssueListAppUserSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"end_user_id":{"type":"string","title":"End User Id"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["id","end_user_id"],"title":"IssueListAppUserSchema","description":"The reporter as a list response carries it: Flask nests\n`AppUserSharedSchema(only=['id', 'metadata_', 'end_user_id'])` inside `IssueListSchema`, not the\nfull app-user shape the detail endpoints use. The `metadata_` serializer is\n`BaseAppUserSchema`'s, repeated rather than inherited -- Pydantic has no `only=`, and\nsubclassing to drop five fields is not a thing either."},"IssueListInfoSchema":{"properties":{"total":{"type":"integer","title":"Total"},"current_month_issues":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Current Month Issues"},"items":{"items":{"$ref":"#/components/schemas/IssueListSchema"},"type":"array","title":"Items"}},"type":"object","required":["total","items"],"title":"IssueListInfoSchema"},"IssueListSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"key":{"type":"integer","title":"Key"},"status":{"anyOf":[{"$ref":"#/components/schemas/IssueStatusSchema"},{"type":"null"}]},"priority":{"anyOf":[{"$ref":"#/components/schemas/IssuePrioritySchema"},{"type":"null"}]},"assignee":{"anyOf":[{"$ref":"#/components/schemas/IssueAssigneeSchema"},{"type":"null"}]},"tags":{"items":{"$ref":"#/components/schemas/TagSchema"},"type":"array","title":"Tags","default":[]},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"issue_reported_time":{"type":"string","format":"date-time","title":"Issue Reported Time"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"files":{"items":{"$ref":"#/components/schemas/IssueFileSchema"},"type":"array","title":"Files","default":[]},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"current_view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current View"},"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"custom_fields":{"items":{"$ref":"#/components/schemas/CustomFieldSchema"},"type":"array","title":"Custom Fields","default":[]},"fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fullstory Session"},"app_user":{"anyOf":[{"$ref":"#/components/schemas/IssueListAppUserSchema"},{"type":"null"}]},"is_limited":{"type":"boolean","title":"Is Limited"},"linked_issues_count":{"type":"integer","title":"Linked Issues Count","default":0},"pretty_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Title","readOnly":true},"pretty_app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty App Version","readOnly":true},"pretty_device_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Device Name","readOnly":true},"pretty_os":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Os","readOnly":true},"pretty_tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Tester Email","readOnly":true}},"type":"object","required":["id","key","issue_reported_time","app_id","created","updated","is_limited","pretty_title","pretty_app_version","pretty_device_name","pretty_os","pretty_tester_email"],"title":"IssueListSchema","description":"Flask's `IssueListSchema` (flaskapp/app/modules/issue_tracking/schemas.py:467), field for\nfield. Used by every endpoint that returns a *list* of issues: the paginated list, the ES\nfilter, linked issues, and more-like-this.\n\nDeliberately NOT `BaseIssueSchema`/`PrettyIssueSchema`, which are the port of Flask's\n`IssuePrettifiedSchema` and belong to the single-issue endpoints. Both apps keep the two shapes\napart on purpose: the list view renders a row, not a device report, and `PrettyIssueSchema`\ncarries ~40 raw columns plus ~30 computed `pretty_*` fields that nothing on that screen reads."},"IssuePermissionStateSchema":{"properties":{"name":{"type":"string","title":"Name"},"state":{"type":"string","title":"State"},"pretty_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Name"},"pretty_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty State"}},"type":"object","required":["name","state"],"title":"IssuePermissionStateSchema"},"IssuePriorityEnum":{"type":"string","enum":["High","Medium","Low"],"title":"IssuePriorityEnum"},"IssuePrioritySchema":{"properties":{"priority":{"$ref":"#/components/schemas/IssuePriorityEnum"},"updated":{"type":"string","format":"date-time","title":"Updated"}},"type":"object","required":["priority","updated"],"title":"IssuePrioritySchema"},"IssueSearchFilterParams":{"properties":{"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","default":20},"offset":{"type":"integer","minimum":0.0,"title":"Offset","default":0},"filters":{"items":{"$ref":"#/components/schemas/IssueFilterItem"},"type":"array","title":"Filters"},"sort":{"type":"string","title":"Sort","default":"key"}},"type":"object","required":["filters"],"title":"IssueSearchFilterParams"},"IssueServiceHookPermalinkSchema":{"properties":{"permalink":{"type":"string","title":"Permalink"},"service_hook_type":{"type":"string","title":"Service Hook Type"},"service_hook_id":{"type":"string","format":"uuid","title":"Service Hook Id"}},"type":"object","required":["permalink","service_hook_type","service_hook_id"],"title":"IssueServiceHookPermalinkSchema"},"IssueStatusEnum":{"type":"string","enum":["New","In progress","Closed"],"title":"IssueStatusEnum"},"IssueStatusSchema":{"properties":{"status":{"$ref":"#/components/schemas/IssueStatusEnum"},"updated":{"type":"string","format":"date-time","title":"Updated"}},"type":"object","required":["status","updated"],"title":"IssueStatusSchema"},"IssueSummarySchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"summary":{"type":"string","title":"Summary"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"cause":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cause"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"},"log_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Log Ids"}},"type":"object","required":["id","summary","type","cause","priority","log_ids"],"title":"IssueSummarySchema"},"IssueTeamMemberNotificationSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"issue_id":{"type":"string","format":"uuid","title":"Issue Id"},"is_read":{"type":"boolean","title":"Is Read"},"type":{"anyOf":[{"$ref":"#/components/schemas/IssueTeamMemberNotificationType"},{"type":"null"}]},"subject_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subject Id"}},"type":"object","required":["id","issue_id","is_read","type","subject_id"],"title":"IssueTeamMemberNotificationSchema"},"IssueTeamMemberNotificationType":{"type":"string","enum":["new_issue","new_message"],"title":"IssueTeamMemberNotificationType"},"JiraProjectSchema":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"}},"type":"object","required":["key","name","integration_id"],"title":"JiraProjectSchema"},"JiraSchema":{"properties":{"integration_layout":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Layout"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"cloud_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cloud Id"},"project_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"field_mapping_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Field Mapping Enabled"},"two_way_sync_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Two Way Sync Enabled"},"webhook":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Webhook"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["integration_layout","id","created","updated","active","app_id","url","cloud_id","project_id","state","redirect_uri","automatic_forward","field_mapping_enabled","two_way_sync_enabled","webhook","deactivation_reason","integration_layout_version"],"title":"JiraSchema"},"JiraWorkspaceSchema":{"properties":{"projects":{"items":{"$ref":"#/components/schemas/JiraProjectSchema"},"type":"array","title":"Projects"},"url":{"type":"string","title":"Url"}},"type":"object","required":["projects","url"],"title":"JiraWorkspaceSchema"},"JoinTeamsParams":{"properties":{"team_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Team Ids","default":[]}},"type":"object","title":"JoinTeamsParams"},"LinearProjectSchema":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"LinearProjectSchema"},"LinearProjectsSchema":{"properties":{"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"next_page":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page"},"teams":{"items":{"$ref":"#/components/schemas/LinearTeamSchema"},"type":"array","title":"Teams"}},"type":"object","required":["integration_id","next_page","teams"],"title":"LinearProjectsSchema"},"LinearSchema":{"properties":{"integration_layout":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Layout"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"linear_team_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Linear Team Id"},"linear_project_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Linear Project Id"},"is_webhook_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Webhook Enabled"},"is_admin":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Admin"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["integration_layout","id","created","updated","active","app_id","automatic_forward","linear_team_id","linear_project_id","is_webhook_enabled","is_admin","deactivation_reason","integration_layout_version"],"title":"LinearSchema"},"LinearTeamSchema":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"projects":{"items":{"$ref":"#/components/schemas/LinearProjectSchema"},"type":"array","title":"Projects"}},"type":"object","required":["id","name","projects"],"title":"LinearTeamSchema"},"LinkCrashGroupParams":{"properties":{"crash_groups":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Crash Groups"}},"type":"object","required":["crash_groups"],"title":"LinkCrashGroupParams"},"LinkIssuesParams":{"properties":{"issues":{"items":{"type":"string","format":"uuid"},"type":"array","minItems":1,"title":"Issues"}},"type":"object","required":["issues"],"title":"LinkIssuesParams"},"LogTrackingEventParams":{"properties":{"event_type":{"type":"string","title":"Event Type"},"performer_id":{"type":"string","format":"uuid","title":"Performer Id"},"performer_type":{"$ref":"#/components/schemas/PerformerType"},"subject_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subject Id"},"subject_type":{"anyOf":[{"$ref":"#/components/schemas/SubjectType"},{"type":"null"}]},"reminder":{"type":"boolean","title":"Reminder","default":false}},"type":"object","required":["event_type","performer_id","performer_type"],"title":"LogTrackingEventParams"},"LoginParams":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"},"client_id":{"type":"string","title":"Client Id"}},"type":"object","required":["email","password","client_id"],"title":"LoginParams"},"LogoUploadSchema":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"LogoUploadSchema"},"LogoutParams":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["refresh_token"],"title":"LogoutParams"},"MeSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"email":{"type":"string","title":"Email"},"notify_major_releases":{"type":"boolean","title":"Notify Major Releases"},"notify_shake_cues":{"type":"boolean","title":"Notify Shake Cues"},"picture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Picture"},"has_password":{"type":"boolean","title":"Has Password"},"has_google":{"type":"boolean","title":"Has Google"},"teams":{"items":{"$ref":"#/components/schemas/MeTeamSchema"},"type":"array","title":"Teams","default":[]},"joinable_teams":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Joinable Teams","default":[]}},"type":"object","required":["id","name","email","notify_major_releases","notify_shake_cues","picture","has_password","has_google"],"title":"MeSchema"},"MeTeamSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"},"settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings"},"role":{"$ref":"#/components/schemas/TeamMemberRole"},"sentry":{"anyOf":[{"$ref":"#/components/schemas/src__modules__accounts__schemas__me__SentrySchema"},{"type":"null"}]},"notify_new_app":{"type":"boolean","title":"Notify New App"},"notify_new_bug":{"type":"boolean","title":"Notify New Bug"},"notify_new_chat_message":{"type":"boolean","title":"Notify New Chat Message"},"notify_desktop":{"type":"boolean","title":"Notify Desktop"},"notify_unread_activity":{"type":"boolean","title":"Notify Unread Activity"},"has_subscription":{"type":"boolean","title":"Has Subscription","default":false},"is_data_available":{"type":"boolean","title":"Is Data Available","default":true},"is_free":{"type":"boolean","title":"Is Free","default":true},"subscription_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Status"},"subscription_plans":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Subscription Plans","default":[]},"common_replies":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Common Replies","default":[]},"unique_devices":{"type":"integer","title":"Unique Devices","default":0}},"type":"object","required":["id","created","name","slug","logo_url","role","notify_new_app","notify_new_bug","notify_new_chat_message","notify_desktop","notify_unread_activity"],"title":"MeTeamSchema","description":"Team data as seen from the /me endpoint — includes membership-specific fields."},"MemberUserSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"picture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Picture"}},"type":"object","required":["id","email","name","picture"],"title":"MemberUserSchema"},"MessageResponse":{"properties":{"message":{"type":"string","title":"Message"}},"type":"object","required":["message"],"title":"MessageResponse","description":"Generic message response — used by import and export endpoints in operations.py."},"MetadataKeysSchema":{"properties":{"ticket_metadata":{"items":{"type":"string"},"type":"array","title":"Ticket Metadata"},"app_user_metadata":{"items":{"type":"string"},"type":"array","title":"App User Metadata"}},"type":"object","required":["ticket_metadata","app_user_metadata"],"title":"MetadataKeysSchema"},"MissingDsymsSchema":{"properties":{"uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uuid"},"crash_events_count":{"type":"integer","title":"Crash Events Count"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"}},"type":"object","required":["crash_events_count"],"title":"MissingDsymsSchema"},"MobileTicketSyncSchema":{"properties":{"tickets":{"items":{"$ref":"#/components/schemas/AppUserTicketsSyncSchema"},"type":"array","title":"Tickets"},"users":{"items":{"$ref":"#/components/schemas/UserSchema"},"type":"array","title":"Users"}},"type":"object","required":["tickets","users"],"title":"MobileTicketSyncSchema"},"MttrSchema":{"properties":{"mttr_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mttr Seconds","description":"Median resolution time in seconds; null when no defects were resolved."},"mttr_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mttr Hours","description":"Median resolution time in hours; null when no defects were resolved."},"mttr_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Mttr Days","description":"Median resolution time in days; null when no defects were resolved."},"resolved_count":{"type":"integer","title":"Resolved Count"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"Health score on the 0-10 scale, one decimal; null when no defects were resolved."}},"type":"object","required":["resolved_count"],"title":"MttrSchema"},"NetworkHealthEndpointSchema":{"properties":{"name":{"type":"string","title":"Name"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"total_requests":{"type":"integer","title":"Total Requests"},"status_distribution":{"items":{"$ref":"#/components/schemas/NetworkHealthStatusDistributionSchema"},"type":"array","title":"Status Distribution"},"score":{"type":"number","title":"Score","description":"Per-endpoint health score on the 0-10 scale, rounded half-up to one decimal."}},"type":"object","required":["name","method","endpoint","total_requests","status_distribution","score"],"title":"NetworkHealthEndpointSchema"},"NetworkHealthSchema":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/NetworkHealthEndpointSchema"},"type":"array","title":"Items"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"Aggregate health score (0-10, one decimal) across all endpoints; null when there are no endpoints."}},"type":"object","required":["total","items"],"title":"NetworkHealthSchema"},"NetworkHealthStatusDistributionSchema":{"properties":{"status_class":{"type":"string","title":"Status Class"},"count":{"type":"integer","title":"Count"},"percentage":{"type":"number","title":"Percentage"}},"type":"object","required":["status_class","count","percentage"],"title":"NetworkHealthStatusDistributionSchema"},"NetworkRequestLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"status_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Code"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"request_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Body"},"request_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Headers"},"response_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Body"},"response_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Headers"},"duration":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration"}},"type":"object","required":["timestamp"],"title":"NetworkRequestLogItem"},"NetworkRequestParameters":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"request_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Body"},"response_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Body"},"request_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Headers"},"response_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Headers"},"status_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Code"},"duration":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration"}},"type":"object","required":["timestamp"],"title":"NetworkRequestParameters"},"NetworkSpeedEndpointSchema":{"properties":{"name":{"type":"string","title":"Name"},"method":{"type":"string","title":"Method"},"endpoint":{"type":"string","title":"Endpoint"},"total_requests":{"type":"integer","title":"Total Requests"},"average_duration":{"type":"number","title":"Average Duration"},"score":{"type":"number","title":"Score","description":"Per-endpoint score on the 0-10 scale, rounded half-up to one decimal."}},"type":"object","required":["name","method","endpoint","total_requests","average_duration","score"],"title":"NetworkSpeedEndpointSchema"},"NetworkSpeedSchema":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/NetworkSpeedEndpointSchema"},"type":"array","title":"Items"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"Aggregate score (0-10, one decimal) across all endpoints; null when there are no endpoints."}},"type":"object","required":["total","items"],"title":"NetworkSpeedSchema"},"NotificationLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["timestamp"],"title":"NotificationLogItem"},"NotificationParameters":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["timestamp"],"title":"NotificationParameters"},"NotionDatabaseSchema":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"}},"type":"object","required":["id","title","integration_id"],"title":"NotionDatabaseSchema"},"NotionSchema":{"properties":{"integration_layout":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Layout"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"bot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bot Id"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"},"duplicated_template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Duplicated Template Id"},"database_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Database Id"},"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["integration_layout","id","created","updated","active","app_id","bot_id","workspace_id","duplicated_template_id","database_id","redirect_uri","automatic_forward","deactivation_reason","integration_layout_version"],"title":"NotionSchema"},"OAuthTokenSchema":{"properties":{"access_token":{"type":"string","title":"Access Token"},"expires_in":{"type":"integer","title":"Expires In"},"token_type":{"type":"string","title":"Token Type"},"scope":{"type":"string","title":"Scope"},"refresh_token":{"type":"string","title":"Refresh Token"}},"type":"object","required":["access_token","expires_in","token_type","scope","refresh_token"],"title":"OAuthTokenSchema"},"OS":{"type":"string","enum":["iOS","Android","Web"],"title":"OS"},"PatchAppBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchAppBody"},"PatchAppUserBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchAppUserBody"},"PatchAsanaBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchAsanaBody"},"PatchAzureBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchAzureBody"},"PatchClickupBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchClickupBody"},"PatchCrashEventBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchCrashEventBody"},"PatchCrashEventChatBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchCrashEventChatBody"},"PatchCrashGroupBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchCrashGroupBody"},"PatchCustomerBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchCustomerBody"},"PatchGithubBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchGithubBody"},"PatchIssueBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchIssueBody"},"PatchIssueChatBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchIssueChatBody"},"PatchJiraBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchJiraBody"},"PatchLinearBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchLinearBody"},"PatchMemberAlertsBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchMemberAlertsBody"},"PatchNotificationBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchNotificationBody"},"PatchNotionBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchNotionBody"},"PatchSlackBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchSlackBody"},"PatchSubscriptionBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchSubscriptionBody"},"PatchTeamBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchTeamBody"},"PatchTrelloBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchTrelloBody"},"PatchUserNotificationsBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchUserNotificationsBody"},"PatchWebhookBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchWebhookBody"},"PatchZapierBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PatchZapierBody"},"PerformerType":{"type":"string","enum":["User","Team","Email","System"],"title":"PerformerType"},"PlanInterval":{"type":"string","enum":["day","week","month","year"],"title":"PlanInterval"},"PlatformSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"os":{"$ref":"#/components/schemas/OS"},"name":{"type":"string","title":"Name"},"latest_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Latest Version"}},"type":"object","required":["id","os","name","latest_version"],"title":"PlatformSchema"},"PrettyConsoleLogEvent":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","type","message","icon_url"],"title":"PrettyConsoleLogEvent"},"PrettyCustomLogEvent":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","level","message","icon_url"],"title":"PrettyCustomLogEvent"},"PrettyIssueSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"app":{"$ref":"#/components/schemas/AppSchema"},"app_user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App User Id"},"app_user":{"anyOf":[{"$ref":"#/components/schemas/BaseAppUserSchema"},{"type":"null"}]},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"files":{"items":{"$ref":"#/components/schemas/IssueFileSchema"},"type":"array","title":"Files","default":[]},"custom_fields":{"items":{"$ref":"#/components/schemas/CustomFieldSchema"},"type":"array","title":"Custom Fields","default":[]},"key":{"type":"integer","title":"Key"},"active":{"type":"boolean","title":"Active"},"issue_reported_time":{"type":"string","format":"date-time","title":"Issue Reported Time"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Screenshot Url"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"session_replay_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Replay Url"},"device":{"type":"string","title":"Device"},"cpu_arch":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cpu Arch"},"os_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Os Name"},"os_version":{"type":"string","title":"Os Version"},"app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Version"},"build_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Build Version"},"sdk_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sdk Version"},"xcode_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Version"},"xcode_build":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Xcode Build"},"timezone":{"type":"string","title":"Timezone"},"locale":{"type":"string","title":"Locale"},"battery_level":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Battery Level"},"battery_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Battery Status"},"low_power_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Low Power Mode"},"nfc":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Nfc"},"font_scale":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Font Scale"},"available_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Disk Space"},"used_disk_space":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Disk Space"},"available_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Available Memory"},"used_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Memory"},"used_application_memory":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Used Application Memory"},"device_orientation":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Device Orientation"},"screen_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Height"},"screen_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Width"},"screen_density":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Screen Density"},"browser_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Name"},"browser_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Browser Version"},"browser_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Width"},"browser_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Browser Height"},"cookies_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cookies Enabled"},"is_mobile":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Mobile"},"network_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Type"},"network_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Network Name"},"metadata_":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"current_view":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current View"},"authentication":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Authentication"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fullstory Session"},"tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tester Email"},"status":{"anyOf":[{"$ref":"#/components/schemas/IssueStatusSchema"},{"type":"null"}]},"priority":{"anyOf":[{"$ref":"#/components/schemas/IssuePrioritySchema"},{"type":"null"}]},"assignee":{"anyOf":[{"$ref":"#/components/schemas/IssueAssigneeSchema"},{"type":"null"}]},"log":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Log"},"blackbox":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Blackbox"},"permissions":{"items":{"$ref":"#/components/schemas/IssuePermissionStateSchema"},"type":"array","title":"Permissions","default":[]},"tags":{"items":{"$ref":"#/components/schemas/TagSchema"},"type":"array","title":"Tags","default":[]},"pretty_battery_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Battery Status","readOnly":true},"pretty_low_power_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Low Power Mode","readOnly":true},"pretty_memory_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Memory Status","readOnly":true},"pretty_used_application_memory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Used Application Memory","readOnly":true},"pretty_storage_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Storage Status","readOnly":true},"pretty_network_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Network Status","readOnly":true},"searchable_network_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Searchable Network Status","readOnly":true},"pretty_cookies_enabled":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Cookies Enabled","readOnly":true},"pretty_is_mobile":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Is Mobile","readOnly":true},"pretty_location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Location","readOnly":true},"pretty_os":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Os","readOnly":true},"pretty_browser":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Browser","readOnly":true},"pretty_browser_resolution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Browser Resolution","readOnly":true},"pretty_app_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty App Version","readOnly":true},"pretty_xcode_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Xcode Version","readOnly":true},"pretty_device_orientation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Device Orientation","readOnly":true},"pretty_is_portrait_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pretty Is Portrait Mode","readOnly":true},"pretty_screen_density":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Pretty Screen Density","readOnly":true},"pretty_authentication":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Authentication","readOnly":true},"pretty_device_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Device Name","readOnly":true},"pretty_resolution":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Resolution","readOnly":true},"pretty_screenshot_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Screenshot Url","readOnly":true},"pretty_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Title","readOnly":true},"pretty_tags":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Tags","readOnly":true},"pretty_tester_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Tester Email","readOnly":true},"pretty_locale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Locale","readOnly":true},"pretty_timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Timezone","readOnly":true},"pretty_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Time","readOnly":true},"pretty_nfc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Nfc","readOnly":true},"pretty_font_scale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Font Scale","readOnly":true},"pretty_fullstory_session":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pretty Fullstory Session","readOnly":true}},"type":"object","required":["id","app_id","app","app_user_id","created","updated","key","active","issue_reported_time","title","screenshot_url","video_url","session_replay_url","device","cpu_arch","os_name","os_version","app_version","build_version","sdk_version","xcode_version","xcode_build","timezone","locale","battery_level","battery_status","low_power_mode","nfc","font_scale","available_disk_space","used_disk_space","available_memory","used_memory","used_application_memory","device_orientation","screen_height","screen_width","screen_density","browser_name","browser_version","browser_width","browser_height","cookies_enabled","is_mobile","network_type","network_name","pretty_battery_status","pretty_low_power_mode","pretty_memory_status","pretty_used_application_memory","pretty_storage_status","pretty_network_status","searchable_network_status","pretty_cookies_enabled","pretty_is_mobile","pretty_location","pretty_os","pretty_browser","pretty_browser_resolution","pretty_app_version","pretty_xcode_version","pretty_device_orientation","pretty_is_portrait_mode","pretty_screen_density","pretty_authentication","pretty_device_name","pretty_resolution","pretty_screenshot_url","pretty_title","pretty_tags","pretty_tester_email","pretty_locale","pretty_timezone","pretty_time","pretty_nfc","pretty_font_scale","pretty_fullstory_session"],"title":"PrettyIssueSchema"},"PrettyNetworkRequest":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"},"status_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Code"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"request_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Body"},"request_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Headers"},"response_body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Body"},"response_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Headers"},"duration":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration"}},"type":"object","required":["id","timestamp","method","status_code","url","request_body","request_headers","response_body","response_headers","duration"],"title":"PrettyNetworkRequest"},"PrettyNotificationEvent":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","title","description","icon_url"],"title":"PrettyNotificationEvent"},"PrettySystemEvent":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"description":{"type":"string","title":"Description"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","description","icon_url"],"title":"PrettySystemEvent"},"PrettyUserAction":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"property":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property"},"property_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property Type"},"touch_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Touch Type"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","class_name","property","property_type","touch_type","description","icon_url"],"title":"PrettyUserAction"},"PrettyViewControllerHistory":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"description":{"type":"string","title":"Description"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"}},"type":"object","required":["id","timestamp","description","icon_url"],"title":"PrettyViewControllerHistory"},"ProductType":{"type":"string","enum":["app","plan","devices"],"title":"ProductType"},"PublicCreateCrashEventChatMessageParams":{"properties":{"message":{"type":"string","title":"Message"},"assignee_id":{"type":"string","format":"uuid","title":"Assignee Id"},"is_note":{"type":"boolean","title":"Is Note","default":true}},"type":"object","required":["message","assignee_id"],"title":"PublicCreateCrashEventChatMessageParams"},"PublicCreateIssueChatMessageParams":{"properties":{"message":{"type":"string","title":"Message"},"assignee_id":{"type":"string","format":"uuid","title":"Assignee Id"},"is_note":{"type":"boolean","title":"Is Note","default":true}},"type":"object","required":["message","assignee_id"],"title":"PublicCreateIssueChatMessageParams"},"PublicPatchCrashGroupBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PublicPatchCrashGroupBody"},"PublicPatchIssueBody":{"items":{"$ref":"#/components/schemas/ReplaceOperation"},"type":"array","title":"PublicPatchIssueBody"},"RefreshIdsParameters":{"properties":{"ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ids"}},"type":"object","title":"RefreshIdsParameters"},"RefreshTokenParams":{"properties":{"refresh_token":{"type":"string","title":"Refresh Token"},"client_id":{"type":"string","title":"Client Id"}},"type":"object","required":["refresh_token","client_id"],"title":"RefreshTokenParams"},"RegisterParameters":{"properties":{"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"client_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Uri"},"grant_types":{"items":{"type":"string"},"type":"array","title":"Grant Types","default":["authorization_code","refresh_token"]},"redirect_uris":{"items":{"type":"string"},"type":"array","title":"Redirect Uris","default":[]},"response_types":{"items":{"type":"string"},"type":"array","title":"Response Types","default":["code"]},"scope":{"type":"string","title":"Scope","default":"mcp:read mcp:write accounts:read"},"token_endpoint_auth_method":{"type":"string","title":"Token Endpoint Auth Method","default":"none"}},"type":"object","title":"RegisterParameters"},"RegisterParams":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","title":"Password"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"utm_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Source"},"utm_medium":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Medium"},"utm_campaign":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Campaign"},"utm_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Content"},"utm_term":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Utm Term"},"google_analytics_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Google Analytics Id"}},"type":"object","required":["email","password"],"title":"RegisterParams"},"ReleaseDateEstimateSchema":{"properties":{"open_issues":{"type":"integer","title":"Open Issues"},"open_crashes":{"type":"integer","title":"Open Crashes"},"open_items":{"type":"integer","title":"Open Items"},"mttr_days":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mttr Days","description":"MTTR in days used for this projection; null when MTTR has no signal (no defects resolved)."},"estimated_days_until_release":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Days Until Release","description":"Projected days until release (open items x MTTR days); null when MTTR has no signal (no defects resolved)."}},"type":"object","required":["open_issues","open_crashes","open_items"],"title":"ReleaseDateEstimateSchema"},"ReleaseHealthOverviewSchema":{"properties":{"feedback_volume":{"$ref":"#/components/schemas/FeedbackVolumeSchema"},"crash_volume":{"$ref":"#/components/schemas/CrashVolumeSchema"},"crash_free_sessions":{"$ref":"#/components/schemas/CrashFreeSessionsSchema"},"anr_free_sessions":{"$ref":"#/components/schemas/AnrFreeSessionsSchema"},"network_health":{"$ref":"#/components/schemas/NetworkHealthSchema"},"network_speed":{"$ref":"#/components/schemas/NetworkSpeedSchema"},"resolution_rate":{"$ref":"#/components/schemas/ResolutionRateSchema"},"mttr":{"$ref":"#/components/schemas/MttrSchema"},"testing_coverage":{"$ref":"#/components/schemas/TestingCoverageSchema"},"current_duration":{"$ref":"#/components/schemas/CurrentDurationSchema"},"release_date_estimate":{"$ref":"#/components/schemas/ReleaseDateEstimateSchema"},"release_health_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Release Health Score","description":"Aggregate release health score (0-10, one decimal) across the four metric scores; null only when no sub-metric has signal."},"release_summary":{"anyOf":[{"$ref":"#/components/schemas/ReleaseSummarySchema"},{"type":"null"}],"description":"Latest stored LLM-generated release summary for this release; null when none has been generated yet."}},"type":"object","required":["feedback_volume","crash_volume","crash_free_sessions","anr_free_sessions","network_health","network_speed","resolution_rate","mttr","testing_coverage","current_duration","release_date_estimate"],"title":"ReleaseHealthOverviewSchema"},"ReleaseSummaryInsightSchema":{"properties":{"type":{"type":"string","title":"Type"},"severity":{"type":"string","title":"Severity"},"text":{"type":"string","title":"Text"},"related_ticket_uuids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Related Ticket Uuids"}},"type":"object","required":["type","severity","text"],"title":"ReleaseSummaryInsightSchema"},"ReleaseSummarySchema":{"properties":{"app_version":{"type":"string","title":"App Version"},"headline":{"type":"string","title":"Headline"},"insights":{"items":{"$ref":"#/components/schemas/ReleaseSummaryInsightSchema"},"type":"array","title":"Insights"},"top_open_tickets":{"items":{"$ref":"#/components/schemas/ReleaseSummaryTopTicketSchema"},"type":"array","title":"Top Open Tickets"},"release_health_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Release Health Score"},"estimated_days_until_release":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Days Until Release"},"estimated_completion_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Estimated Completion Date"},"generated_at":{"type":"string","format":"date-time","title":"Generated At"}},"type":"object","required":["app_version","headline","insights","top_open_tickets","generated_at"],"title":"ReleaseSummarySchema"},"ReleaseSummaryTopTicketSchema":{"properties":{"id":{"type":"string","title":"Id"},"type":{"type":"string","title":"Type","description":"'issue' or 'crash'."},"key":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Key"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["id","type"],"title":"ReleaseSummaryTopTicketSchema"},"ReleaseVersionListSchema":{"properties":{"total":{"type":"integer","title":"Total"},"items":{"items":{"$ref":"#/components/schemas/ReleaseVersionSchema"},"type":"array","title":"Items"}},"type":"object","required":["total","items"],"title":"ReleaseVersionListSchema"},"ReleaseVersionSchema":{"properties":{"version":{"type":"string","title":"Version"},"number_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Number Version"}},"type":"object","required":["version"],"title":"ReleaseVersionSchema"},"ReplaceOperation":{"properties":{"op":{"type":"string","const":"replace","title":"Op"},"path":{"type":"string","title":"Path"},"value":{"title":"Value"}},"type":"object","required":["op","path","value"],"title":"ReplaceOperation","description":"RFC 6902 'replace' operation: sets the target field to a new value."},"ReportType":{"type":"string","enum":["automatic","manual","dashboard"],"title":"ReportType"},"RequestEmailChangeParams":{"properties":{"new_email":{"type":"string","format":"email","title":"New Email"}},"type":"object","required":["new_email"],"title":"RequestEmailChangeParams"},"ResendConfirmationParams":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"ResendConfirmationParams"},"ResetPasswordParams":{"properties":{"code":{"type":"string","title":"Code"},"password":{"type":"string","title":"Password"}},"type":"object","required":["code","password"],"title":"ResetPasswordParams"},"ResolutionRateSchema":{"properties":{"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate","description":"Resolution rate (closed/new * 100); null when no defects were created."},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"Health score on the 0-10 scale, one decimal; null when no defects were created."},"new_points":{"type":"integer","title":"New Points"},"closed_points":{"type":"integer","title":"Closed Points"}},"type":"object","required":["new_points","closed_points"],"title":"ResolutionRateSchema"},"RuleModule":{"type":"string","enum":["issue_tracking"],"title":"RuleModule"},"RuleSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"app":{"type":"string","format":"uuid","title":"App"},"name":{"type":"string","title":"Name"},"active":{"type":"boolean","title":"Active"},"module":{"$ref":"#/components/schemas/RuleModule"},"trigger":{"$ref":"#/components/schemas/TriggerSchema"},"conditions":{"items":{"$ref":"#/components/schemas/ConditionSchema"},"type":"array","title":"Conditions"},"actions":{"items":{"$ref":"#/components/schemas/ActionSchema"},"type":"array","title":"Actions"}},"type":"object","required":["id","created","updated","app","name","active","module","trigger","conditions","actions"],"title":"RuleSchema"},"RuleTypeSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"method":{"type":"string","title":"Method"},"module":{"$ref":"#/components/schemas/RuleModule"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["id","created","updated","name","description","method","module","active"],"title":"RuleTypeSchema","description":"Shared response shape for trigger/condition/action *types* -- Flask uses three separate\nModelSchema classes here only to exclude each one's own backref; Pydantic has no backref\nserialization to guard against, so one shared schema replaces all three without changing the\nwire shape."},"ScoreInputsSchema":{"properties":{"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"},"population":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Population"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"},"priority_counts":{"anyOf":[{"additionalProperties":{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object"},"type":"object"},{"type":"null"}],"title":"Priority Counts"},"mttr_days":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Mttr Days"},"resolved_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resolved Count"},"total_sessions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Sessions"},"crash_sessions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crash Sessions"},"crash_free_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Crash Free Rate"},"dimension_actuals":{"anyOf":[{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object"},{"type":"null"}],"title":"Dimension Actuals"},"metadata_actuals":{"anyOf":[{"additionalProperties":{"additionalProperties":{"type":"integer"},"type":"object"},"type":"object"},{"type":"null"}],"title":"Metadata Actuals"}},"type":"object","title":"ScoreInputsSchema","description":"Raw score inputs for the tuning screen's realtime preview (one metric, one release).\n\n`score` is always present: the metric's current score under the effective config, so\nthe frontend can verify its local recompute reproduces the backend number. The other\nfields are per-metric — only the ones the metric's formula reads are populated:\n`population` (network_speed / network_health items, full pre-pagination list),\n`priority_counts` + `rate` (resolution_rate), `mttr_days` + `resolved_count` (mttr),\nthe session counters (crash_free_sessions), and the actuals maps (testing_coverage)."},"SearchableAppUserFieldsResponse":{"properties":{"metadata":{"items":{"type":"string"},"type":"array","title":"Metadata"}},"type":"object","required":["metadata"],"title":"SearchableAppUserFieldsResponse"},"SearchableIssueFieldsResponse":{"properties":{"metadata":{"items":{"type":"string"},"type":"array","title":"Metadata"},"custom_fields":{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array","title":"Custom Fields"}},"type":"object","required":["metadata","custom_fields"],"title":"SearchableIssueFieldsResponse"},"SendInviteParams":{"properties":{"emails":{"items":{"type":"string","format":"email"},"type":"array","title":"Emails"},"role":{"$ref":"#/components/schemas/TeamMemberRole","default":"member"},"apps":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Apps","default":[]}},"type":"object","required":["emails"],"title":"SendInviteParams"},"SentryIssuesSchema":{"properties":{"permalink":{"type":"string","title":"Permalink"},"title":{"type":"string","title":"Title"},"value":{"type":"string","title":"Value"},"type":{"type":"string","title":"Type"},"id":{"type":"string","title":"Id"},"culprit":{"type":"string","title":"Culprit"}},"type":"object","required":["permalink","title","value","type","id","culprit"],"title":"SentryIssuesSchema"},"SentryProjectSchema":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"environments":{"items":{"type":"string"},"type":"array","title":"Environments"}},"type":"object","required":["id","name","slug","environments"],"title":"SentryProjectSchema"},"ServiceHookListSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"active":{"type":"boolean","title":"Active"},"app_id":{"type":"string","format":"uuid","title":"App Id"},"type":{"type":"string","title":"Type"},"automatic_forward":{"type":"boolean","title":"Automatic Forward"}},"type":"object","required":["id","created","updated","active","app_id","type","automatic_forward"],"title":"ServiceHookListSchema"},"SessionConfig":{"properties":{"idle_timeout_sec":{"type":"integer","title":"Idle Timeout Sec","default":1800},"max_buffered_sessions":{"type":"integer","title":"Max Buffered Sessions","default":500},"min_duration_sec":{"type":"integer","title":"Min Duration Sec","default":30}},"type":"object","title":"SessionConfig"},"SessionCoverageSchema":{"properties":{"dimensions":{"additionalProperties":{"$ref":"#/components/schemas/SessionDimensionBlockSchema"},"type":"object","title":"Dimensions"},"metadata":{"additionalProperties":{"$ref":"#/components/schemas/SessionDimensionBlockSchema"},"type":"object","title":"Metadata"}},"type":"object","required":["dimensions","metadata"],"title":"SessionCoverageSchema","description":"Session-derived coverage: the eight session dimensions for this app's platform plus tracked metadata keys.\n\nBoth maps are keyed by dimension/metadata-key name; each value is a `{score, items}` block whose\nitems are the top-4 + `others` list with any configured target category always rendered."},"SessionDimensionBlockSchema":{"properties":{"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"},"items":{"items":{"$ref":"#/components/schemas/TestingCoverageItemSchema"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SessionDimensionBlockSchema","description":"One dimension's (or tracked metadata key's) display block.\n\n`score` is the group's 0-10 S rounded half-down to one decimal; null when the\ndimension is disabled or not scorable (no targets / zero recorded sessions)."},"SessionInitRequest":{"properties":{"pending_sessions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":500,"title":"Pending Sessions"},"network_requests":{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":200,"title":"Network Requests"}},"type":"object","title":"SessionInitRequest","description":"Body of ``POST /api/2.0/analytics/sessions/init``.\n\nBoth lists are kept as raw dicts (not typed models) so each item can be validated — and a\nbad one skipped — individually in the ingest pipeline, rather than a single malformed item\nfailing the whole batch with a 422. Items are validated with :class:`PendingSessionIn` /\n:class:`NetworkRequestIn` during ingest."},"SessionInitResponse":{"properties":{"sessions_enabled":{"type":"boolean","title":"Sessions Enabled"},"app_archived":{"type":"boolean","title":"App Archived","default":false},"config":{"anyOf":[{"$ref":"#/components/schemas/SessionConfig"},{"type":"null"}]}},"type":"object","required":["sessions_enabled"],"title":"SessionInitResponse","description":"200 response. When sessions are disabled, only ``sessions_enabled`` is sent\n(serialize with ``exclude_none``); ``app_archived`` accompanies the 404 path."},"SetPasswordParams":{"properties":{"new_password":{"type":"string","title":"New Password"}},"type":"object","required":["new_password"],"title":"SetPasswordParams"},"SlackSchema":{"properties":{"integration_layout":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Layout"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"channel_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Name"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["integration_layout","id","created","updated","active","app_id","channel_name","webhook_url","user","automatic_forward","deactivation_reason","integration_layout_version"],"title":"SlackSchema"},"StartAsanaIntegrationParams":{"properties":{"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"}},"type":"object","required":["client_id","redirect_uri"],"title":"StartAsanaIntegrationParams"},"StartAsanaIntegrationSchema":{"properties":{"code_challenge":{"type":"string","title":"Code Challenge"},"state":{"type":"string","title":"State"}},"type":"object","required":["code_challenge","state"],"title":"StartAsanaIntegrationSchema"},"StartGithubIntegrationParams":{"properties":{"client_id":{"type":"string","title":"Client Id"}},"type":"object","required":["client_id"],"title":"StartGithubIntegrationParams"},"StartGithubIntegrationSchema":{"properties":{"state":{"type":"string","title":"State"}},"type":"object","required":["state"],"title":"StartGithubIntegrationSchema"},"StartJiraIntegrationSchema":{"properties":{"state":{"type":"string","title":"State"}},"type":"object","required":["state"],"title":"StartJiraIntegrationSchema"},"StartLinearIntegrationParams":{"properties":{"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"}},"type":"object","required":["client_id","redirect_uri"],"title":"StartLinearIntegrationParams"},"StartLinearIntegrationSchema":{"properties":{"state":{"type":"string","title":"State"}},"type":"object","required":["state"],"title":"StartLinearIntegrationSchema"},"StartNotionParams":{"properties":{"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"}},"type":"object","required":["client_id","redirect_uri"],"title":"StartNotionParams"},"StartNotionSchema":{"properties":{"state":{"type":"string","title":"State"}},"type":"object","required":["state"],"title":"StartNotionSchema"},"SubjectType":{"type":"string","enum":["User","Team","App","UserInvite","TeamInvite","Event"],"title":"SubjectType"},"SubscriptionStatus":{"type":"string","enum":["trialing","active","incomplete","incomplete_expired","past_due","canceled","unpaid"],"title":"SubscriptionStatus"},"SystemEventLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},"type":"object","required":["timestamp"],"title":"SystemEventLogItem"},"SystemEventParameters":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},"type":"object","required":["timestamp"],"title":"SystemEventParameters"},"TagSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"TagSchema"},"TeamInviteInfoSchema":{"properties":{"team_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Name"},"team_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Slug"},"member_email":{"type":"string","title":"Member Email"},"member_in_workspace":{"type":"boolean","title":"Member In Workspace"}},"type":"object","required":["team_name","team_slug","member_email","member_in_workspace"],"title":"TeamInviteInfoSchema"},"TeamMemberRole":{"type":"string","enum":["admin","member","guest"],"title":"TeamMemberRole"},"TestingCoverageItemSchema":{"properties":{"value":{"type":"string","title":"Value"},"count":{"type":"integer","title":"Count"},"percentage":{"type":"number","title":"Percentage"},"minimum_sessions":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minimum Sessions","description":"Configured target minimum for this value; null when the value has no target (always null in tickets)."}},"type":"object","required":["value","count","percentage"],"title":"TestingCoverageItemSchema"},"TestingCoverageMetadataKeysSchema":{"properties":{"metadata_keys":{"items":{"type":"string"},"type":"array","title":"Metadata Keys"}},"type":"object","required":["metadata_keys"],"title":"TestingCoverageMetadataKeysSchema","description":"Response for `GET .../scoring/testing_coverage/metadata_keys`."},"TestingCoverageSchema":{"properties":{"tickets":{"additionalProperties":{"items":{"$ref":"#/components/schemas/TestingCoverageItemSchema"},"type":"array"},"type":"object","title":"Tickets"},"sessions":{"$ref":"#/components/schemas/SessionCoverageSchema"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score","description":"0-10 coverage score, one decimal; null when no targets are configured."}},"type":"object","required":["tickets","sessions"],"title":"TestingCoverageSchema","description":"Parallel coverage blocks — `sessions` (scored) alongside `tickets` (reference) — plus the score.\n\n`tickets` is keyed by `platform_dimensions(app_os)` -- the same call the `sessions` block uses --\nplus any tracked metadata keys, so the two blocks compare on identical keys by construction."},"TicketReadParameters":{"properties":{"ticket_id":{"type":"string","format":"uuid","title":"Ticket Id"},"ticket_type":{"type":"string","title":"Ticket Type"}},"type":"object","required":["ticket_id","ticket_type"],"title":"TicketReadParameters"},"TicketReplyParameters":{"properties":{"ticket_id":{"type":"string","format":"uuid","title":"Ticket Id"},"ticket_type":{"type":"string","title":"Ticket Type"},"message":{"type":"string","title":"Message"}},"type":"object","required":["ticket_id","ticket_type","message"],"title":"TicketReplyParameters"},"TicketReplySchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","title":"Created"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"message":{"type":"string","title":"Message"},"is_read":{"type":"boolean","title":"Is Read"}},"type":"object","required":["id","created","user_id","message","is_read"],"title":"TicketReplySchema"},"TokenParameters":{"properties":{"grant_type":{"type":"string","title":"Grant Type"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"redirect_uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect Uri"},"client_id":{"type":"string","title":"Client Id","default":""},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"code_verifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code Verifier"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource","default":"https://mcp.shakebugs.com"}},"type":"object","required":["grant_type"],"title":"TokenParameters"},"TrackingEventSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"performer_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Performer Id"},"performer_type":{"$ref":"#/components/schemas/PerformerType"},"subject_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subject Id"},"subject_type":{"anyOf":[{"$ref":"#/components/schemas/SubjectType"},{"type":"null"}]},"timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Timestamp"},"event":{"$ref":"#/components/schemas/EventTypeSchema"}},"type":"object","required":["id","created","updated","performer_id","performer_type","subject_id","subject_type","timestamp","event"],"title":"TrackingEventSchema"},"TrelloBoardSchema":{"properties":{"id":{"type":"string","title":"Id"},"integration_id":{"type":"string","format":"uuid","title":"Integration Id"},"lists":{"items":{"$ref":"#/components/schemas/TrelloListSchema"},"type":"array","title":"Lists"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","integration_id","lists","name"],"title":"TrelloBoardSchema"},"TrelloListSchema":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"TrelloListSchema"},"TrelloSchema":{"properties":{"integration_layout":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Integration Layout"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"board_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Board Id"},"list_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"List Id"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["integration_layout","id","created","updated","active","app_id","board_id","list_id","automatic_forward","deactivation_reason","integration_layout_version"],"title":"TrelloSchema"},"TrelloUserBoardsSchema":{"properties":{"boards":{"items":{"$ref":"#/components/schemas/TrelloBoardSchema"},"type":"array","title":"Boards"},"username":{"type":"string","title":"Username"}},"type":"object","required":["boards","username"],"title":"TrelloUserBoardsSchema"},"TriggerSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"rule":{"type":"string","format":"uuid","title":"Rule"},"type":{"type":"string","format":"uuid","title":"Type"}},"type":"object","required":["id","created","updated","rule","type"],"title":"TriggerSchema"},"UnlinkCrashGroupParams":{"properties":{"crash_groups":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Crash Groups"}},"type":"object","title":"UnlinkCrashGroupParams"},"UnlinkIssuesParams":{"properties":{"issues":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Issues"}},"type":"object","title":"UnlinkIssuesParams"},"UpdateActionParams":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"type_id":{"type":"string","format":"uuid","title":"Type Id"},"args":{"additionalProperties":true,"type":"object","title":"Args"}},"type":"object","required":["type_id","args"],"title":"UpdateActionParams"},"UpdateAppUserParameters":{"properties":{"end_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End User Id"},"metadata_":{"additionalProperties":true,"type":"object","title":"Metadata","default":{}},"device_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Device Token"}},"type":"object","title":"UpdateAppUserParameters"},"UpdateConditionParams":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"type_id":{"type":"string","format":"uuid","title":"Type Id"},"args":{"additionalProperties":true,"type":"object","title":"Args"}},"type":"object","required":["type_id","args"],"title":"UpdateConditionParams"},"UpdateMemberParams":{"properties":{"role":{"$ref":"#/components/schemas/TeamMemberRole"},"apps":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Apps","default":[]}},"type":"object","required":["role"],"title":"UpdateMemberParams"},"UpdatePlatformParams":{"properties":{"os":{"$ref":"#/components/schemas/OS"},"platform":{"type":"string","title":"Platform"},"latest_version":{"type":"string","title":"Latest Version"}},"type":"object","required":["os","platform","latest_version"],"title":"UpdatePlatformParams"},"UpdateRuleParams":{"properties":{"name":{"type":"string","title":"Name"},"active":{"type":"boolean","title":"Active"},"trigger":{"$ref":"#/components/schemas/UpdateTriggerParams"},"conditions":{"items":{"$ref":"#/components/schemas/UpdateConditionParams"},"type":"array","title":"Conditions"},"actions":{"items":{"$ref":"#/components/schemas/UpdateActionParams"},"type":"array","title":"Actions"}},"type":"object","required":["name","active","trigger","conditions","actions"],"title":"UpdateRuleParams"},"UpdateTriggerParams":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"type_id":{"type":"string","format":"uuid","title":"Type Id"}},"type":"object","required":["type_id"],"title":"UpdateTriggerParams"},"UpdateUserParams":{"properties":{"name":{"type":"string","title":"Name"},"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["name","email"],"title":"UpdateUserParams"},"UpdateWhiteLabelParams":{"properties":{"background_color":{"anyOf":[{"type":"string","pattern":"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"},{"type":"null"}],"title":"Background Color"},"slogan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slogan"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"}},"type":"object","title":"UpdateWhiteLabelParams"},"UpgradePlansParams":{"properties":{"plans":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Plans"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},"type":"object","required":["plans"],"title":"UpgradePlansParams"},"UploadSchema":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"UploadSchema"},"UserActionLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"property":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property"},"property_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property Type"},"touch_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Touch Type"}},"type":"object","required":["timestamp"],"title":"UserActionLogItem"},"UserActionParameters":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"class_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Class Name"},"property":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property"},"property_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Property Type"},"touch_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Touch Type"}},"type":"object","required":["timestamp"],"title":"UserActionParameters"},"UserNotificationsSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"picture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Picture"},"notify_major_releases":{"type":"boolean","title":"Notify Major Releases"},"notify_shake_cues":{"type":"boolean","title":"Notify Shake Cues"}},"type":"object","required":["id","email","name","picture","notify_major_releases","notify_shake_cues"],"title":"UserNotificationsSchema"},"UserSchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"role":{"type":"string","title":"Role"}},"type":"object","required":["id","name","role"],"title":"UserSchema"},"ValidateAppDomainCodeParams":{"properties":{"code":{"type":"string","title":"Code"}},"type":"object","required":["code"],"title":"ValidateAppDomainCodeParams"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ViewControllerLogItem":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"view_controller":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View Controller"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"}},"type":"object","required":["timestamp"],"title":"ViewControllerLogItem"},"ViewControllerParameters":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"view_controller":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View Controller"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method"}},"type":"object","required":["timestamp"],"title":"ViewControllerParameters"},"WebhookSchema":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"webhook_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Secret"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"integration_layout":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Integration Layout"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["id","created","updated","active","app_id","webhook_url","webhook_secret","automatic_forward","integration_layout","deactivation_reason","integration_layout_version"],"title":"WebhookSchema"},"WhiteLabelSchema":{"properties":{"slogan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slogan"},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color"},"logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo Url"}},"type":"object","required":["slogan","background_color","logo_url"],"title":"WhiteLabelSchema"},"ZapierSchema":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"app_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"App Id"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"},"automatic_forward":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Automatic Forward"},"integration_layout":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Integration Layout"},"deactivation_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deactivation Reason"},"integration_layout_version":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Integration Layout Version"}},"type":"object","required":["id","created","updated","active","app_id","webhook_url","automatic_forward","integration_layout","deactivation_reason","integration_layout_version"],"title":"ZapierSchema"},"src__modules__accounts__schemas__me__SentrySchema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"created":{"type":"string","format":"date-time","title":"Created"},"updated":{"type":"string","format":"date-time","title":"Updated"},"team":{"type":"string","format":"uuid","title":"Team"},"client_id":{"type":"string","title":"Client Id"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"install_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Install Id"},"active":{"type":"boolean","title":"Active"}},"type":"object","required":["id","created","updated","team","client_id","slug","install_id","active"],"title":"SentrySchema","description":"Sentry integration data embedded in the /me team response.\n\nMirrors Flask's SentrySchema (ModelSchema with include_fk=True), except client_secret and\nrefresh_token are deliberately omitted -- client_secret is Shake's single platform-wide Sentry\nintegration secret (shared across every team's install), and refresh_token is a live per-install\ncredential; neither has a legitimate client use case. The FK column team_id is serialized as\n'team' to match Flask output."},"src__modules__service_hooks__schemas__SentrySchema":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"created":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created"},"updated":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"team_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Team Id"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"install_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Install Id"}},"type":"object","required":["id","created","updated","active","team_id","client_id","slug","install_id"],"title":"SentrySchema"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"},"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-KEY"}}}}