Browse Source

ref(api-docs): Move API endpoints documentation to Sentry (#20818)

* ref(api-docs): Move API endpoints documentation to Sentry
MeredithAnya 4 years ago
parent
commit
4ef045b19f

+ 14 - 0
api-docs/components/schemas/avatar.json

@@ -0,0 +1,14 @@
+{
+  "Avatar": {
+    "type": "object",
+    "properties": {
+      "avatarType": {
+        "type": "string"
+      },
+      "avatarUuid": {
+        "type": "string",
+        "nullable": true
+      }
+    }
+  }
+}

+ 8 - 0
api-docs/components/schemas/event.json

@@ -0,0 +1,8 @@
+{
+  "Event": {
+    "type": "object"
+  },
+  "EventDetailed": {
+    "type": "object"
+  }
+}

+ 682 - 0
api-docs/components/schemas/issue.json

@@ -0,0 +1,682 @@
+{
+  "Issue": {
+    "type": "object",
+    "required": [
+      "lastSeen",
+      "numComments",
+      "userCount",
+      "culprit",
+      "title",
+      "id",
+      "assignedTo",
+      "logger",
+      "stats",
+      "type",
+      "annotations",
+      "metadata",
+      "status",
+      "subscriptionDetails",
+      "isPublic",
+      "hasSeen",
+      "shortId",
+      "shareId",
+      "firstSeen",
+      "count",
+      "permalink",
+      "level",
+      "isSubscribed",
+      "isBookmarked",
+      "project",
+      "statusDetails"
+    ],
+    "properties": {
+      "annotations": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "assignedTo": {
+        "type": "object",
+        "nullable": true
+      },
+      "count": {
+        "type": "string"
+      },
+      "culprit": {
+        "type": "string"
+      },
+      "firstSeen": {
+        "type": "string"
+      },
+      "hasSeen": {
+        "type": "boolean"
+      },
+      "id": {
+        "type": "string"
+      },
+      "isBookmarked": {
+        "type": "boolean"
+      },
+      "isPublic": {
+        "type": "boolean"
+      },
+      "isSubscribed": {
+        "type": "boolean"
+      },
+      "lastSeen": {
+        "type": "string"
+      },
+      "level": {
+        "type": "string"
+      },
+      "logger": {
+        "type": "string",
+        "nullable": true
+      },
+      "metadata": {
+        "oneOf": [
+          {
+            "type": "object",
+            "required": [
+              "filename",
+              "type",
+              "value"
+            ],
+            "properties": {
+              "filename": {
+                "type": "string"
+              },
+              "type": {
+                "type": "string"
+              },
+              "value": {
+                "type": "string"
+              }
+            }
+          },
+          {
+            "type": "object",
+            "required": [
+              "title"
+            ],
+            "properties": {
+              "title": {
+                "type": "string"
+              }
+            }
+          }
+        ]
+      },
+      "numComments": {
+        "type": "integer"
+      },
+      "permalink": {
+        "type": "string"
+      },
+      "project": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "string"
+          },
+          "name": {
+            "type": "string"
+          },
+          "slug": {
+            "type": "string"
+          }
+        }
+      },
+      "shareId": {
+        "type": "string",
+        "nullable": true
+      },
+      "shortId": {
+        "type": "string"
+      },
+      "stats": {
+        "type": "object",
+        "properties": {
+          "24h": {
+            "type": "array",
+            "items": {
+              "type": "array",
+              "items": {
+                "type": "number"
+              }
+            }
+          }
+        }
+      },
+      "status": {
+        "type": "string",
+        "enum": [
+          "resolved",
+          "unresolved",
+          "ignored"
+        ]
+      },
+      "statusDetails": {
+        "type": "object"
+      },
+      "subscriptionDetails": {
+        "type": "object",
+        "nullable": true
+      },
+      "title": {
+        "type": "string"
+      },
+      "type": {
+        "type": "string"
+      },
+      "userCount": {
+        "type": "integer"
+      }
+    }
+  },
+  "IssueDetailed": {
+    "type": "object",
+    "required": [
+      "activity",
+      "annotations",
+      "assignedTo",
+      "count",
+      "culprit",
+      "firstRelease",
+      "firstSeen",
+      "hasSeen",
+      "id",
+      "isBookmarked",
+      "isPublic",
+      "isSubscribed",
+      "lastRelease",
+      "lastSeen",
+      "level",
+      "logger",
+      "metadata",
+      "numComments",
+      "participants",
+      "permalink",
+      "pluginActions",
+      "pluginContexts",
+      "pluginIssues",
+      "project",
+      "seenBy",
+      "shareId",
+      "shortId",
+      "stats",
+      "status",
+      "statusDetails",
+      "subscriptionDetails",
+      "tags",
+      "title",
+      "type",
+      "userCount",
+      "userReportCount"
+    ],
+    "properties": {
+      "activity": {
+        "type": "array",
+        "items": {
+          "type": "object",
+          "properties": {
+            "data": {
+              "type": "object"
+            },
+            "dateCreated": {
+              "type": "string"
+            },
+            "id": {
+              "type": "string"
+            },
+            "type": {
+              "type": "string"
+            },
+            "user": {
+              "type": "object",
+              "nullable": true
+            }
+          }
+        }
+      },
+      "annotations": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "assignedTo": {
+        "type": "object",
+        "nullable": true
+      },
+      "count": {
+        "type": "string"
+      },
+      "culprit": {
+        "type": "string"
+      },
+      "firstRelease": {
+        "type": "object",
+        "nullable": true,
+        "properties": {
+          "authors": {
+            "type": "array",
+            "items": {
+              "type": "string"
+            }
+          },
+          "commitCount": {
+            "type": "integer"
+          },
+          "data": {
+            "type": "object",
+            "nullable": true
+          },
+          "dateCreated": {
+            "type": "string"
+          },
+          "dateReleased": {
+            "type": "string",
+            "nullable": true
+          },
+          "deployCount": {
+            "type": "integer"
+          },
+          "firstEvent": {
+            "type": "string"
+          },
+          "lastCommit": {
+            "type": "string",
+            "nullable": true
+          },
+          "lastDeploy": {
+            "type": "string",
+            "nullable": true
+          },
+          "lastEvent": {
+            "type": "string"
+          },
+          "newGroups": {
+            "type": "integer"
+          },
+          "owner": {
+            "type": "string",
+            "nullable": true
+          },
+          "projects": {
+            "type": "array",
+            "items": {
+              "type": "object",
+              "properties": {
+                "name": {
+                  "type": "string"
+                },
+                "slug": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "ref": {
+            "type": "string",
+            "nullable": true
+          },
+          "shortVersion": {
+            "type": "string"
+          },
+          "url": {
+            "type": "string",
+            "nullable": true
+          },
+          "version": {
+            "type": "string"
+          }
+        }
+      },
+      "firstSeen": {
+        "type": "string"
+      },
+      "hasSeen": {
+        "type": "boolean"
+      },
+      "id": {
+        "type": "string"
+      },
+      "isBookmarked": {
+        "type": "boolean"
+      },
+      "isPublic": {
+        "type": "boolean"
+      },
+      "isSubscribed": {
+        "type": "boolean"
+      },
+      "lastRelease": {
+        "type": "object",
+        "nullable": true
+      },
+      "lastSeen": {
+        "type": "string"
+      },
+      "level": {
+        "type": "string"
+      },
+      "logger": {
+        "type": "string",
+        "nullable": true
+      },
+      "metadata": {
+        "oneOf": [
+          {
+            "type": "object",
+            "required": [
+              "filename",
+              "type",
+              "value"
+            ],
+            "properties": {
+              "filename": {
+                "type": "string"
+              },
+              "type": {
+                "type": "string"
+              },
+              "value": {
+                "type": "string"
+              }
+            }
+          },
+          {
+            "type": "object",
+            "required": [
+              "title"
+            ],
+            "properties": {
+              "title": {
+                "type": "string"
+              }
+            }
+          }
+        ]
+      },
+      "numComments": {
+        "type": "integer"
+      },
+      "participants": {
+        "type": "array",
+        "items": {
+          "type": "object"
+        }
+      },
+      "permalink": {
+        "type": "string"
+      },
+      "pluginActions": {
+        "type": "array",
+        "items": {
+          "type": "array",
+          "items": {
+            "type": "string"
+          }
+        }
+      },
+      "pluginContexts": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "pluginIssues": {
+        "type": "array",
+        "items": {
+          "type": "object"
+        }
+      },
+      "project": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "string"
+          },
+          "name": {
+            "type": "string"
+          },
+          "slug": {
+            "type": "string"
+          }
+        }
+      },
+      "seenBy": {
+        "type": "array",
+        "items": {
+          "type": "object"
+        }
+      },
+      "shareId": {
+        "type": "string",
+        "nullable": true
+      },
+      "shortId": {
+        "type": "string"
+      },
+      "stats": {
+        "type": "object",
+        "properties": {
+          "24h": {
+            "type": "array",
+            "items": {
+              "type": "array",
+              "items": {
+                "type": "number"
+              }
+            }
+          },
+          "30d": {
+            "type": "array",
+            "items": {
+              "type": "array",
+              "items": {
+                "type": "number"
+              }
+            }
+          }
+        }
+      },
+      "status": {
+        "type": "string",
+        "enum": [
+          "resolved",
+          "unresolved",
+          "ignored"
+        ]
+      },
+      "statusDetails": {
+        "type": "object"
+      },
+      "subscriptionDetails": {
+        "type": "object",
+        "nullable": true
+      },
+      "tags": {
+        "type": "array",
+        "items": {
+          "type": "object"
+        }
+      },
+      "title": {
+        "type": "string"
+      },
+      "type": {
+        "type": "string"
+      },
+      "userCount": {
+        "type": "integer"
+      },
+      "userReportCount": {
+        "type": "integer"
+      }
+    }
+  },
+  "IssueNoStats": {
+    "type": "object",
+    "required": [
+      "lastSeen",
+      "numComments",
+      "userCount",
+      "culprit",
+      "title",
+      "id",
+      "assignedTo",
+      "logger",
+      "type",
+      "annotations",
+      "metadata",
+      "status",
+      "subscriptionDetails",
+      "isPublic",
+      "hasSeen",
+      "shortId",
+      "shareId",
+      "firstSeen",
+      "count",
+      "permalink",
+      "level",
+      "isSubscribed",
+      "isBookmarked",
+      "project",
+      "statusDetails"
+    ],
+    "properties": {
+      "annotations": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "assignedTo": {
+        "type": "object",
+        "nullable": true
+      },
+      "count": {
+        "type": "string"
+      },
+      "culprit": {
+        "type": "string"
+      },
+      "firstSeen": {
+        "type": "string"
+      },
+      "hasSeen": {
+        "type": "boolean"
+      },
+      "id": {
+        "type": "string"
+      },
+      "isBookmarked": {
+        "type": "boolean"
+      },
+      "isPublic": {
+        "type": "boolean"
+      },
+      "isSubscribed": {
+        "type": "boolean"
+      },
+      "lastSeen": {
+        "type": "string"
+      },
+      "level": {
+        "type": "string"
+      },
+      "logger": {
+        "type": "string",
+        "nullable": true
+      },
+      "metadata": {
+        "oneOf": [
+          {
+            "type": "object",
+            "required": [
+              "filename",
+              "type",
+              "value"
+            ],
+            "properties": {
+              "filename": {
+                "type": "string"
+              },
+              "type": {
+                "type": "string"
+              },
+              "value": {
+                "type": "string"
+              }
+            }
+          },
+          {
+            "type": "object",
+            "required": [
+              "title"
+            ],
+            "properties": {
+              "title": {
+                "type": "string"
+              }
+            }
+          }
+        ]
+      },
+      "numComments": {
+        "type": "integer"
+      },
+      "permalink": {
+        "type": "string"
+      },
+      "project": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "string"
+          },
+          "name": {
+            "type": "string"
+          },
+          "slug": {
+            "type": "string"
+          }
+        }
+      },
+      "shareId": {
+        "type": "string",
+        "nullable": true
+      },
+      "shortId": {
+        "type": "string"
+      },
+      "status": {
+        "type": "string",
+        "enum": [
+          "resolved",
+          "unresolved",
+          "ignored"
+        ]
+      },
+      "statusDetails": {
+        "type": "object"
+      },
+      "subscriptionDetails": {
+        "type": "object",
+        "nullable": true
+      },
+      "title": {
+        "type": "string"
+      },
+      "type": {
+        "type": "string"
+      },
+      "userCount": {
+        "type": "integer"
+      }
+    }
+  }
+}

+ 75 - 0
api-docs/components/schemas/key.json

@@ -0,0 +1,75 @@
+"Key": {
+    "type": "object",
+    "required": ["browserSdk", "browserSdkVersion", "dateCreated", "dsn", "id", "isActive", "label", "name", "projectId", "public", "rateLimit", "secret"],
+    "properties": {
+        "browserSdk": {
+            "type": "object",
+            "properties": {
+                "choices": {
+                    "type": "array",
+                    "items": {
+                        "type": "array",
+                        "items": {
+                            "type": "string"
+                        }
+                    }
+                }
+            }
+        },
+        "browserSdkVersion": {
+            "type": "string"
+        },
+        "dateCreated": {
+            "type": "string"
+        },
+        "dsn": {
+            "type": "object",
+            "required": ["cdn", "csp", "minidump", "public", "secret", "security"],
+            "properties": {
+                "cdn": {
+                    "type": "string"
+                },
+                "csp": {
+                    "type": "string"
+                },
+                "minidump": {
+                    "type": "string"
+                },
+                "public": {
+                    "type": "string"
+                },
+                "secret": {
+                    "type": "string"
+                },
+                "security": {
+                    "type": "string"
+                }
+            }
+        },
+        "id": {
+            "type": "string"
+        },
+        "isActive": {
+            "type": "boolean"
+        },
+        "label": {
+            "type": "string"
+        },
+        "name": {
+            "type": "string"
+        },
+        "projectId": {
+            "type": "integer"
+        },
+        "public": {
+            "type": "string"
+        },
+        "rateLimit": {
+            "type": "string",
+            "nullable": true
+        },
+        "secret": {
+            "type": "string"
+        }
+    }
+}

+ 175 - 0
api-docs/components/schemas/organization-details.json

@@ -0,0 +1,175 @@
+{
+  "OrganizationDetails": {
+    "type": "object",
+    "required": [
+      "access",
+      "allowSharedIssues",
+      "availableRoles",
+      "avatar",
+      "dataScrubber",
+      "dataScrubberDefaults",
+      "dateCreated",
+      "defaultRole",
+      "enhancedPrivacy",
+      "experiments",
+      "features",
+      "id",
+      "isDefault",
+      "isEarlyAdopter",
+      "name",
+      "onboardingTasks",
+      "openMembership",
+      "pendingAccessRequests",
+      "projects",
+      "quota",
+      "require2FA",
+      "safeFields",
+      "scrapeJavaScript",
+      "scrubIPAddresses",
+      "sensitiveFields",
+      "slug",
+      "status",
+      "storeCrashReports",
+      "teams",
+      "trustedRelays"
+    ],
+    "properties": {
+      "access": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "allowSharedIssues": {
+        "type": "boolean"
+      },
+      "availableRoles": {
+        "type": "array",
+        "items": {
+          "type": "object",
+          "properties": {
+            "id": {
+              "type": "string"
+            },
+            "name": {
+              "type": "string"
+            }
+          }
+        }
+      },
+      "avatar": {
+        "$ref": "avatar.json#/Avatar"
+      },
+      "dataScrubber": {
+        "type": "boolean"
+      },
+      "dataScrubberDefaults": {
+        "type": "boolean"
+      },
+      "dateCreated": {
+        "type": "string",
+        "format": "date-time"
+      },
+      "defaultRole": {
+        "type": "string"
+      },
+      "enhancedPrivacy": {
+        "type": "boolean"
+      },
+      "experiments": {
+        "type": "object"
+      },
+      "features": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "id": {
+        "type": "string"
+      },
+      "isDefault": {
+        "type": "boolean"
+      },
+      "isEarlyAdopter": {
+        "type": "boolean"
+      },
+      "name": {
+        "type": "string"
+      },
+      "onboardingTasks": {
+        "type": "array",
+        "items": {
+          "type": "object"
+        }
+      },
+      "openMembership": {
+        "type": "boolean"
+      },
+      "pendingAccessRequests": {
+        "type": "integer",
+        "format": "int64"
+      },
+      "projects": {
+        "type": "array",
+        "items": {
+          "$ref": "project.json#/OrganizationProjects"
+        }
+      },
+      "quota": {
+        "type": "object"
+      },
+      "require2FA": {
+        "type": "boolean"
+      },
+      "safeFields": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "scrapeJavaScript": {
+        "type": "boolean"
+      },
+      "scrubIPAddresses": {
+        "type": "boolean"
+      },
+      "sensitiveFields": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "slug": {
+        "type": "string"
+      },
+      "status": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "string"
+          },
+          "name": {
+            "type": "string"
+          }
+        }
+      },
+      "storeCrashReports": {
+        "type": "integer",
+        "format": "int64"
+      },
+      "teams": {
+        "type": "array",
+        "items": {
+          "$ref": "team.json#/Team"
+        }
+      },
+      "trustedRelays": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      }
+    }
+  }
+}

+ 14 - 0
api-docs/components/schemas/organization-status.json

@@ -0,0 +1,14 @@
+{
+  "OrganizationStatus": {
+    "type": "object",
+    "required": ["id", "name"],
+    "properties": {
+      "id": {
+        "type": "string"
+      },
+      "name": {
+        "type": "string"
+      }
+    }
+  }
+}

+ 42 - 0
api-docs/components/schemas/organization.json

@@ -0,0 +1,42 @@
+{
+  "Organization": {
+    "type": "object",
+    "required": [
+      "avatar",
+      "dateCreated",
+      "id",
+      "isEarlyAdopter",
+      "name",
+      "require2FA",
+      "slug",
+      "status"
+    ],
+    "properties": {
+      "avatar": {
+        "$ref": "avatar.json#/Avatar"
+      },
+      "dateCreated": {
+        "type": "string",
+        "format": "date-time"
+      },
+      "id": {
+        "type": "string"
+      },
+      "isEarlyAdopter": {
+        "type": "boolean"
+      },
+      "name": {
+        "type": "string"
+      },
+      "require2FA": {
+        "type": "boolean"
+      },
+      "slug": {
+        "type": "string"
+      },
+      "status": {
+        "$ref": "organization-status.json#/OrganizationStatus"
+      }
+    }
+  }
+}

+ 106 - 0
api-docs/components/schemas/plugin.json

@@ -0,0 +1,106 @@
+{
+  "Plugin": {
+    "type": "object",
+    "required": [
+      "assets",
+      "author",
+      "canDisable",
+      "contexts",
+      "description",
+      "doc",
+      "enabled",
+      "hasConfiguration",
+      "id",
+      "isTestable",
+      "metadata",
+      "name",
+      "resourceLinks",
+      "shortName",
+      "slug",
+      "status",
+      "type",
+      "version"
+    ],
+    "properties": {
+      "assets": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "author": {
+        "type": "object",
+        "properties": {
+          "name": {
+            "type": "string"
+          },
+          "url": {
+            "type": "string"
+          }
+        }
+      },
+      "canDisable": {
+        "type": "boolean"
+      },
+      "contexts": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "description": {
+        "type": "string"
+      },
+      "doc": {
+        "type": "string"
+      },
+      "enabled": {
+        "type": "boolean"
+      },
+      "hasConfiguration": {
+        "type": "boolean"
+      },
+      "id": {
+        "type": "string"
+      },
+      "isTestable": {
+        "type": "boolean"
+      },
+      "metadata": {
+        "type": "object"
+      },
+      "name": {
+        "type": "string"
+      },
+      "resourceLinks": {
+        "type": "array",
+        "items": {
+          "type": "object",
+          "properties": {
+            "title": {
+              "type": "string"
+            },
+            "url": {
+              "type": "string"
+            }
+          }
+        }
+      },
+      "shortName": {
+        "type": "string"
+      },
+      "slug": {
+        "type": "string"
+      },
+      "status": {
+        "type": "string"
+      },
+      "type": {
+        "type": "string"
+      },
+      "version": {
+        "type": "string"
+      }
+    }
+  }
+}

+ 549 - 0
api-docs/components/schemas/project.json

@@ -0,0 +1,549 @@
+{
+  "Project": {
+    "type": "object",
+    "required": [
+      "avatar",
+      "color",
+      "dateCreated",
+      "features",
+      "firstEvent",
+      "hasAccess",
+      "id",
+      "isBookmarked",
+      "isInternal",
+      "isMember",
+      "isPublic",
+      "name",
+      "platform",
+      "slug",
+      "status"
+    ],
+    "properties": {
+      "avatar": {
+        "$ref": "avatar.json#/Avatar"
+      },
+      "color": {
+        "type": "string"
+      },
+      "dateCreated": {
+        "type": "string",
+        "format": "date-time"
+      },
+      "features": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "firstEvent": {
+        "type": "string",
+        "nullable": true
+      },
+      "hasAccess": {
+        "type": "boolean"
+      },
+      "id": {
+        "type": "string"
+      },
+      "isBookmarked": {
+        "type": "boolean"
+      },
+      "isInternal": {
+        "type": "boolean"
+      },
+      "isMember": {
+        "type": "boolean"
+      },
+      "isPublic": {
+        "type": "boolean"
+      },
+      "name": {
+        "type": "string"
+      },
+      "platform": {
+        "type": "string",
+        "nullable": true
+      },
+      "slug": {
+        "type": "string"
+      },
+      "status": {
+        "type": "string",
+        "enum": [
+          "active",
+          "disabled",
+          "pending_deletion",
+          "deletion_in_progress"
+        ]
+      }
+    }
+  },
+  "TeamProjects": {
+    "type": "object",
+    "required": [
+      "dateCreated",
+      "features",
+      "firstEvent",
+      "hasAccess",
+      "id",
+      "isBookmarked",
+      "isMember",
+      "name",
+      "platform",
+      "slug",
+      "team",
+      "teams",
+      "latestDeploys"
+    ],
+    "properties": {
+      "dateCreated": {
+        "type": "string",
+        "format": "date-time"
+      },
+      "features": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "firstEvent": {
+        "type": "string",
+        "nullable": true
+      },
+      "hasAccess": {
+        "type": "boolean"
+      },
+      "id": {
+        "type": "string"
+      },
+      "isBookmarked": {
+        "type": "boolean"
+      },
+      "isMember": {
+        "type": "boolean"
+      },
+      "name": {
+        "type": "string"
+      },
+      "platform": {
+        "type": "string",
+        "nullable": true
+      },
+      "slug": {
+        "type": "string"
+      },
+      "team": {
+        "$ref": "team.json#/TeamMinimal"
+      },
+      "teams": {
+        "type": "array",
+        "items": {
+          "$ref": "team.json#/TeamMinimal"
+        }
+      },
+      "latestDeploys": {
+        "type": "string",
+        "nullable": true
+      }
+    }
+  },
+  "OrganizationProjects": {
+    "type": "object",
+    "required": [
+      "dateCreated",
+      "firstEvent",
+      "hasAccess",
+      "id",
+      "isBookmarked",
+      "isMember",
+      "latestDeploys",
+      "name",
+      "platform",
+      "platforms",
+      "slug",
+      "team",
+      "teams"
+    ],
+    "properties": {
+      "dateCreated": {
+        "type": "string"
+      },
+      "firstEvent": {
+        "type": "string",
+        "nullable": true
+      },
+      "hasAccess": {
+        "type": "boolean"
+      },
+      "id": {
+        "type": "string"
+      },
+      "isBookmarked": {
+        "type": "boolean"
+      },
+      "isMember": {
+        "type": "boolean"
+      },
+      "latestDeploys": {
+        "type": "string",
+        "nullable": true
+      },
+      "name": {
+        "type": "string"
+      },
+      "platform": {
+        "type": "string",
+        "nullable": true
+      },
+      "platforms": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "slug": {
+        "type": "string"
+      },
+      "team": {
+        "$ref": "team.json#/TeamMinimal"
+      },
+      "teams": {
+        "type": "array",
+        "items": {
+          "$ref": "team.json#/TeamMinimal"
+        }
+      }
+    }
+  },
+  "DetailedProject": {
+    "type": "object",
+    "required": [
+      "allowedDomains",
+      "avatar",
+      "color",
+      "dataScrubber",
+      "dataScrubberDefaults",
+      "dateCreated",
+      "defaultEnvironment",
+      "digestsMaxDelay",
+      "digestsMinDelay",
+      "features",
+      "firstEvent",
+      "hasAccess",
+      "id",
+      "isBookmarked",
+      "isInternal",
+      "isMember",
+      "isPublic",
+      "latestRelease",
+      "name",
+      "options",
+      "organization",
+      "platform",
+      "platforms",
+      "processingIssues",
+      "relayPiiConfig",
+      "resolveAge",
+      "safeFields",
+      "scrapeJavaScript",
+      "scrubIPAddresses",
+      "securityToken",
+      "securityTokenHeader",
+      "sensitiveFields",
+      "slug",
+      "status",
+      "storeCrashReports",
+      "subjectPrefix",
+      "subjectTemplate",
+      "team",
+      "teams",
+      "verifySSL"
+    ],
+    "properties": {
+      "allowedDomains": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "avatar": {
+        "type": "object",
+        "properties": {
+          "avatarType": {
+            "type": "string"
+          },
+          "avatarUuid": {
+            "type": "string",
+            "nullable": true
+          }
+        }
+      },
+      "color": {
+        "type": "string"
+      },
+      "dataScrubber": {
+        "type": "boolean"
+      },
+      "dataScrubberDefaults": {
+        "type": "boolean"
+      },
+      "dateCreated": {
+        "type": "string"
+      },
+      "defaultEnvironment": {
+        "type": "string",
+        "nullable": true
+      },
+      "digestsMaxDelay": {
+        "type": "integer"
+      },
+      "digestsMinDelay": {
+        "type": "integer"
+      },
+      "features": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "firstEvent": {
+        "type": "string",
+        "nullable": true
+      },
+      "hasAccess": {
+        "type": "boolean"
+      },
+      "id": {
+        "type": "string"
+      },
+      "isBookmarked": {
+        "type": "boolean"
+      },
+      "isInternal": {
+        "type": "boolean"
+      },
+      "isMember": {
+        "type": "boolean"
+      },
+      "isPublic": {
+        "type": "boolean"
+      },
+      "latestRelease": {
+        "type": "object",
+        "required": [
+          "authors",
+          "commitCount",
+          "data",
+          "dateCreated",
+          "dateReleased",
+          "deployCount",
+          "firstEvent",
+          "lastCommit",
+          "lastDeploy",
+          "lastEvent",
+          "newGroups",
+          "owner",
+          "projects",
+          "ref",
+          "shortVersion",
+          "url",
+          "version"
+        ],
+        "properties": {
+          "authors": {
+            "type": "array",
+            "items": {
+              "type": "object",
+              "properties": {
+                "name": {
+                  "type": "string"
+                },
+                "email": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "commitCount": {
+            "type": "integer"
+          },
+          "data": {
+            "type": "object"
+          },
+          "dateCreated": {
+            "type": "string"
+          },
+          "dateReleased": {
+            "type": "string",
+            "nullable": true
+          },
+          "deployCount": {
+            "type": "integer"
+          },
+          "firstEvent": {
+            "type": "string",
+            "nullable": true
+          },
+          "lastCommit": {
+            "type": "object",
+            "nullable": true
+          },
+          "lastDeploy": {
+            "type": "object",
+            "nullable": true
+          },
+          "lastEvent": {
+            "type": "string",
+            "nullable": true
+          },
+          "newGroups": {
+            "type": "integer"
+          },
+          "owner": {
+            "type": "string",
+            "nullable": true
+          },
+          "projects": {
+            "type": "array",
+            "items": {
+              "type": "object",
+              "properties": {
+                "name": {
+                  "type": "string"
+                },
+                "slug": {
+                  "type": "string"
+                }
+              }
+            }
+          },
+          "ref": {
+            "type": "string",
+            "nullable": true
+          },
+          "shortVersion": {
+            "type": "string"
+          },
+          "url": {
+            "type": "string",
+            "nullable": true
+          },
+          "version": {
+            "type": "string"
+          }
+        }
+      },
+      "name": {
+        "type": "string"
+      },
+      "options": {
+        "type": "object",
+        "properties": {
+          "feedback:branding": {
+            "type": "boolean"
+          },
+          "filters:blacklisted_ips": {
+            "type": "string"
+          },
+          "filters:error_messages": {
+            "type": "string"
+          },
+          "filters:releases": {
+            "type": "string"
+          },
+          "sentry:csp_ignored_sources": {
+            "type": "string"
+          },
+          "sentry:csp_ignored_sources_defaults": {
+            "type": "boolean"
+          },
+          "sentry:reprocessing_active": {
+            "type": "boolean"
+          }
+        }
+      },
+      "organization": {
+        "$ref": "organization.json#/Organization"
+      },
+      "platform": {
+        "type": "string",
+        "nullable": true
+      },
+      "platforms": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "plugins": {
+        "type": "array",
+        "items": {
+          "$ref": "plugin.json#/Plugin"
+        }
+      },
+      "processingIssues": {
+        "type": "integer"
+      },
+      "relayPiiConfig": {
+        "type": "string",
+        "nullable": true
+      },
+      "resolveAge": {
+        "type": "integer"
+      },
+      "safeFields": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "scrapeJavaScript": {
+        "type": "boolean"
+      },
+      "scrubIPAddresses": {
+        "type": "boolean"
+      },
+      "securityToken": {
+        "type": "string"
+      },
+      "securityTokenHeader": {
+        "type": "string",
+        "nullable": true
+      },
+      "sensitiveFields": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      },
+      "slug": {
+        "type": "string"
+      },
+      "status": {
+        "type": "string"
+      },
+      "storeCrashReports": {
+        "type": "boolean",
+        "nullable": true
+      },
+      "subjectPrefix": {
+        "type": "string"
+      },
+      "subjectTemplate": {
+        "type": "string"
+      },
+      "team": {
+        "$ref": "team.json#/TeamMinimal"
+      },
+      "teams": {
+        "type": "array",
+        "items": {
+          "$ref": "team.json#/TeamMinimal"
+        }
+      },
+      "verifySSL": {
+        "type": "boolean"
+      }
+    }
+  }
+}

+ 30 - 0
api-docs/components/schemas/releases/commit-file.json

@@ -0,0 +1,30 @@
+{
+    "CommitFile": {
+        "type": "object",
+        "properties": {
+            "author": {
+                "type": "object",
+                "nullable": true
+            },
+            "commitMessage": {
+                "type": "string"
+            },
+            "filename": {
+                "type": "string"
+            },
+            "orgId": {
+                "type": "integer"
+            },
+            "repoName": {
+                "type": "string"
+            },
+            "type": {
+                "type": "string",
+                "enum": ["M", "A", "D"]
+            },
+            "id": {
+                "type": "string"
+            }
+        }
+    }
+}

Some files were not shown because too many files changed in this diff