Snippets

Erik van Zijst Bitbucket Connect Descriptor JSON Schema

Created by Erik van Zijst

File descriptor.json Added

  • Ignore whitespace
  • Hide word diff
+{
+  "description": "This schema describes the Bitbucket connect add-on descriptors", 
+  "title": "Bitbucket add-on schema", 
+  "required": [
+    "baseUrl", 
+    "key", 
+    "description"
+  ], 
+  "additionalProperties": false, 
+  "definitions": {
+    "django_connect.schema.WebItemTargetInlineDialogSchema": {
+      "additionalProperties": false, 
+      "type": "object", 
+      "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/fragment/web-item-target.html", 
+      "properties": {
+        "type": {
+          "enum": [
+            "inlinedialog", 
+            "INLINEDIALOG"
+          ], 
+          "type": "string"
+        }, 
+        "options": {
+          "additionalProperties": false, 
+          "type": "object", 
+          "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/fragment/web-item-target.html#inlineDialog", 
+          "properties": {
+            "width": {
+              "anyOf": [
+                {
+                  "type": "string"
+                }, 
+                {
+                  "minimum": 0, 
+                  "type": "number"
+                }
+              ]
+            }, 
+            "offsetX": {
+              "anyOf": [
+                {
+                  "type": "string"
+                }, 
+                {
+                  "type": "number"
+                }
+              ]
+            }, 
+            "persistent": {
+              "type": "boolean"
+            }, 
+            "onHover": {
+              "type": "boolean"
+            }, 
+            "showDelay": {
+              "anyOf": [
+                {
+                  "type": "string"
+                }, 
+                {
+                  "minimum": 0, 
+                  "type": "number"
+                }
+              ]
+            }, 
+            "offsetY": {
+              "anyOf": [
+                {
+                  "type": "string"
+                }, 
+                {
+                  "type": "number"
+                }
+              ]
+            }, 
+            "isRelativeToMouse": {
+              "type": "boolean"
+            }, 
+            "onTop": {
+              "type": "boolean"
+            }, 
+            "closeOthers": {
+              "type": "boolean"
+            }
+          }
+        }
+      }
+    }, 
+    "django_connect.schema.BasePageModuleSchema": {
+      "additionalProperties": false, 
+      "required": [
+        "url", 
+        "name", 
+        "key"
+      ], 
+      "type": "object", 
+      "properties": {
+        "name": {
+          "$ref": "#/definitions/django_connect.schema.I18nProperty"
+        }, 
+        "weight": {
+          "default": 100, 
+          "minimum": 0, 
+          "type": "integer", 
+          "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+        }, 
+        "url": {
+          "format": "uri-template", 
+          "type": "string", 
+          "maxLength": 255
+        }, 
+        "tooltip": {
+          "$ref": "#/definitions/django_connect.schema.I18nProperty"
+        }, 
+        "params": {
+          "additionalProperties": true, 
+          "type": "object"
+        }, 
+        "location": {
+          "enum": [
+            "org.bitbucket.repository.overview.informationPanel", 
+            "org.bitbucket.pullrequest.summary.info", 
+            "org.bitbucket.branch.summary.info", 
+            "org.bitbucket.commit.summary.info", 
+            "org.bitbucket.account.admin", 
+            "org.bitbucket.branch.summary.actions", 
+            "org.bitbucket.repository.admin", 
+            "org.bitbucket.repository.actions", 
+            "org.bitbucket.commit.summary.actions", 
+            "org.bitbucket.repository.source.fileviewer", 
+            "org.bitbucket.repository.navigation", 
+            "org.bitbucket.pullrequest.summary.actions"
+          ], 
+          "type": "string", 
+          "description": "Location in the application interface", 
+          "maxLength": 128
+        }, 
+        "key": {
+          "pattern": "^[a-zA-Z0-9-]+$", 
+          "type": "string", 
+          "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+          "maxLength": 128
+        }, 
+        "conditions": {
+          "items": {
+            "anyOf": [
+              {
+                "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+              }, 
+              {
+                "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+              }
+            ]
+          }, 
+          "type": "array", 
+          "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+        }, 
+        "icon": {
+          "$ref": "#/definitions/django_connect.schema.Icon"
+        }
+      }
+    }, 
+    "django_connect.conditions.SimpleConditionSchema": {
+      "additionalProperties": false, 
+      "required": [
+        "condition"
+      ], 
+      "type": "object", 
+      "properties": {
+        "invert": {
+          "type": "boolean", 
+          "description": "Set to \"true\" to invert the condition"
+        }, 
+        "params": {
+          "additionalProperties": true, 
+          "type": "object"
+        }, 
+        "condition": {
+          "enum": [
+            "scm", 
+            "user_is_logged_in", 
+            "flag_is_active", 
+            "has_permission", 
+            "has_account_permission", 
+            "is_binary"
+          ], 
+          "type": "string"
+        }
+      }
+    }, 
+    "django_connect.schema.I18nProperty": {
+      "additionalProperties": false, 
+      "type": "object", 
+      "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/fragment/i18n-property.html", 
+      "properties": {
+        "i18n": {
+          "type": "string", 
+          "description": "The localization key for I18N. Bitbucket does not support I18N at the moment."
+        }, 
+        "value": {
+          "type": "string", 
+          "description": "The human-readable value"
+        }
+      }
+    }, 
+    "django_connect.schema.WebItemTargetDialogSchema": {
+      "additionalProperties": false, 
+      "type": "object", 
+      "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/fragment/web-item-target.html", 
+      "properties": {
+        "type": {
+          "enum": [
+            "dialog", 
+            "DIALOG"
+          ], 
+          "type": "string"
+        }, 
+        "options": {
+          "additionalProperties": false, 
+          "type": "object", 
+          "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/fragment/web-item-target.html#modalDialog", 
+          "properties": {
+            "chrome": {
+              "default": true, 
+              "type": "boolean"
+            }, 
+            "width": {
+              "anyOf": [
+                {
+                  "type": "string"
+                }, 
+                {
+                  "minimum": 0, 
+                  "type": "number"
+                }
+              ]
+            }, 
+            "height": {
+              "anyOf": [
+                {
+                  "type": "string"
+                }, 
+                {
+                  "minimum": 0, 
+                  "type": "number"
+                }
+              ]
+            }
+          }
+        }
+      }
+    }, 
+    "django_connect.schema.WebItemTargetPageSchema": {
+      "additionalProperties": false, 
+      "type": "object", 
+      "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/fragment/web-item-target.html", 
+      "properties": {
+        "type": {
+          "enum": [
+            "page", 
+            "PAGE"
+          ], 
+          "type": "string"
+        }
+      }
+    }, 
+    "django_connect.schema.Icon": {
+      "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/fragment/icon.html", 
+      "title": "Icon", 
+      "required": [
+        "url"
+      ], 
+      "additionalProperties": false, 
+      "type": "object", 
+      "properties": {
+        "url": {
+          "type": "string", 
+          "format": "uri"
+        }, 
+        "width": {
+          "type": "integer"
+        }, 
+        "height": {
+          "type": "integer"
+        }
+      }
+    }, 
+    "django_connect.conditions.CompositeConditionSchema": {
+      "additionalProperties": false, 
+      "required": [
+        "conditions"
+      ], 
+      "type": "object", 
+      "properties": {
+        "conditions": {
+          "items": {
+            "anyOf": [
+              {
+                "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+              }, 
+              {
+                "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+              }
+            ]
+          }, 
+          "type": "array"
+        }, 
+        "type": {
+          "enum": [
+            "and", 
+            "AND", 
+            "or", 
+            "OR"
+          ], 
+          "type": "string"
+        }
+      }
+    }
+  }, 
+  "$schema": "http://json-schema.org/draft-04/schema#", 
+  "type": "object", 
+  "properties": {
+    "scopes": {
+      "items": {
+        "enum": [
+          "repository", 
+          "REPOSITORY", 
+          "repository:write", 
+          "REPOSITORY:WRITE", 
+          "repository:admin", 
+          "REPOSITORY:ADMIN", 
+          "snippet", 
+          "SNIPPET", 
+          "snippet:write", 
+          "SNIPPET:WRITE", 
+          "issue", 
+          "ISSUE", 
+          "issue:write", 
+          "ISSUE:WRITE", 
+          "wiki", 
+          "WIKI", 
+          "pullrequest", 
+          "PULLREQUEST", 
+          "pullrequest:write", 
+          "PULLREQUEST:WRITE", 
+          "email", 
+          "EMAIL", 
+          "account", 
+          "ACCOUNT", 
+          "account:write", 
+          "ACCOUNT:WRITE", 
+          "team", 
+          "TEAM", 
+          "team:write", 
+          "TEAM:WRITE", 
+          "webhook", 
+          "WEBHOOK"
+        ], 
+        "type": "string"
+      }, 
+      "type": "array"
+    }, 
+    "vendor": {
+      "additionalProperties": false, 
+      "type": "object", 
+      "description": "The vendor who is offering the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/plugin-vendor.html for more details.", 
+      "properties": {
+        "url": {
+          "format": "uri", 
+          "type": "string", 
+          "maxLength": 200
+        }, 
+        "name": {
+          "type": "string", 
+          "maxLength": 255
+        }
+      }
+    }, 
+    "description": {
+      "maxLength": 255, 
+      "type": "string", 
+      "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/#description", 
+      "title": "Human-readable description"
+    }, 
+    "links": {
+      "additionalProperties": false, 
+      "type": "object", 
+      "description": "Links to supporting documentation and sites", 
+      "properties": {
+        "source": {
+          "format": "uri", 
+          "type": "string", 
+          "title": "Location of source code"
+        }, 
+        "self": {
+          "format": "uri", 
+          "type": "string", 
+          "title": "Location of add-on"
+        }, 
+        "documentation": {
+          "format": "uri", 
+          "type": "string", 
+          "title": "Location of documentation"
+        }, 
+        "support": {
+          "format": "uri", 
+          "type": "string", 
+          "title": "Location of support"
+        }
+      }
+    }, 
+    "contexts": {
+      "minItems": 1, 
+      "items": {
+        "type": "string", 
+        "title": "Contexts the add-on can be installed in"
+      }, 
+      "type": "array"
+    }, 
+    "modules": {
+      "additionalProperties": false, 
+      "type": "object", 
+      "properties": {
+        "webItem": {
+          "items": {
+            "anyOf": [
+              {
+                "additionalProperties": false, 
+                "required": [
+                  "url", 
+                  "name", 
+                  "key"
+                ], 
+                "type": "object", 
+                "properties": {
+                  "styleClasses": {
+                    "items": {
+                      "pattern": "^[_a-zA-Z]+[_a-zA-Z0-9-]*$", 
+                      "type": "string", 
+                      "maxLength": 200
+                    }, 
+                    "type": "array", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#styleClasses"
+                  }, 
+                  "context": {
+                    "enum": [
+                      "page", 
+                      "PAGE"
+                    ], 
+                    "type": "string", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#context"
+                  }, 
+                  "name": {
+                    "$ref": "#/definitions/django_connect.schema.I18nProperty"
+                  }, 
+                  "weight": {
+                    "default": 100, 
+                    "minimum": 0, 
+                    "type": "integer", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+                  }, 
+                  "url": {
+                    "pattern": "^[a-zA-Z0-9-]+$", 
+                    "type": "string", 
+                    "maxLength": 255
+                  }, 
+                  "tooltip": {
+                    "$ref": "#/definitions/django_connect.schema.I18nProperty"
+                  }, 
+                  "params": {
+                    "additionalProperties": true, 
+                    "type": "object"
+                  }, 
+                  "location": {
+                    "enum": [
+                      "org.bitbucket.repository.overview.informationPanel", 
+                      "org.bitbucket.pullrequest.summary.info", 
+                      "org.bitbucket.branch.summary.info", 
+                      "org.bitbucket.commit.summary.info", 
+                      "org.bitbucket.account.admin", 
+                      "org.bitbucket.branch.summary.actions", 
+                      "org.bitbucket.repository.admin", 
+                      "org.bitbucket.repository.actions", 
+                      "org.bitbucket.commit.summary.actions", 
+                      "org.bitbucket.repository.source.fileviewer", 
+                      "org.bitbucket.repository.navigation", 
+                      "org.bitbucket.pullrequest.summary.actions"
+                    ], 
+                    "type": "string", 
+                    "description": "Location in the application interface", 
+                    "maxLength": 128
+                  }, 
+                  "key": {
+                    "pattern": "^[a-zA-Z0-9-]+$", 
+                    "type": "string", 
+                    "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                    "maxLength": 128
+                  }, 
+                  "target": {
+                    "oneOf": [
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetPageSchema"
+                      }, 
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetDialogSchema"
+                      }, 
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetInlineDialogSchema"
+                      }
+                    ]
+                  }, 
+                  "conditions": {
+                    "items": {
+                      "anyOf": [
+                        {
+                          "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                        }, 
+                        {
+                          "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                        }
+                      ]
+                    }, 
+                    "type": "array", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+                  }, 
+                  "icon": {
+                    "$ref": "#/definitions/django_connect.schema.Icon"
+                  }
+                }
+              }, 
+              {
+                "additionalProperties": false, 
+                "required": [
+                  "url", 
+                  "name", 
+                  "key"
+                ], 
+                "type": "object", 
+                "properties": {
+                  "styleClasses": {
+                    "items": {
+                      "pattern": "^[_a-zA-Z]+[_a-zA-Z0-9-]*$", 
+                      "type": "string", 
+                      "maxLength": 200
+                    }, 
+                    "type": "array", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#styleClasses"
+                  }, 
+                  "context": {
+                    "default": "addon", 
+                    "enum": [
+                      "addon", 
+                      "ADDON", 
+                      "product", 
+                      "PRODUCT"
+                    ], 
+                    "type": "string", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#context"
+                  }, 
+                  "name": {
+                    "$ref": "#/definitions/django_connect.schema.I18nProperty"
+                  }, 
+                  "weight": {
+                    "default": 100, 
+                    "minimum": 0, 
+                    "type": "integer", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+                  }, 
+                  "url": {
+                    "format": "uri-template", 
+                    "type": "string", 
+                    "maxLength": 255
+                  }, 
+                  "tooltip": {
+                    "$ref": "#/definitions/django_connect.schema.I18nProperty"
+                  }, 
+                  "params": {
+                    "additionalProperties": true, 
+                    "type": "object"
+                  }, 
+                  "location": {
+                    "enum": [
+                      "org.bitbucket.repository.overview.informationPanel", 
+                      "org.bitbucket.pullrequest.summary.info", 
+                      "org.bitbucket.branch.summary.info", 
+                      "org.bitbucket.commit.summary.info", 
+                      "org.bitbucket.account.admin", 
+                      "org.bitbucket.branch.summary.actions", 
+                      "org.bitbucket.repository.admin", 
+                      "org.bitbucket.repository.actions", 
+                      "org.bitbucket.commit.summary.actions", 
+                      "org.bitbucket.repository.source.fileviewer", 
+                      "org.bitbucket.repository.navigation", 
+                      "org.bitbucket.pullrequest.summary.actions"
+                    ], 
+                    "type": "string", 
+                    "description": "Location in the application interface", 
+                    "maxLength": 128
+                  }, 
+                  "key": {
+                    "pattern": "^[a-zA-Z0-9-]+$", 
+                    "type": "string", 
+                    "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                    "maxLength": 128
+                  }, 
+                  "target": {
+                    "oneOf": [
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetPageSchema"
+                      }, 
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetDialogSchema"
+                      }, 
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetInlineDialogSchema"
+                      }
+                    ]
+                  }, 
+                  "conditions": {
+                    "items": {
+                      "anyOf": [
+                        {
+                          "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                        }, 
+                        {
+                          "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                        }
+                      ]
+                    }, 
+                    "type": "array", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+                  }, 
+                  "icon": {
+                    "$ref": "#/definitions/django_connect.schema.Icon"
+                  }
+                }
+              }
+            ]
+          }, 
+          "type": "array", 
+          "description": "Adds a web item to a specified location in the application interface.\nA web item is a hyperlink that's inserted into some standard place in the\nBitbucket user interface, such as the repository side bar or header. The\nform that the link takes can vary depending on the location. In some cases\nit may render as an item in a drop-down menu, or as a button.\n\nA web item link can open a link to an external site, a new page in the\napplication or a dialog, depending on your configuration.\n\nYou can inject additional context from the application (for example, the\ncontext repository or current user) by using variable tokens known as\n\"context parameters\" in the url."
+        }, 
+        "helpPanel": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Module for a panel in the help drop down (super touch point)."
+        }, 
+        "helpPanels": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Module for a panel in the help drop down (super touch point)."
+        }, 
+        "oauthConsumer": {
+          "additionalProperties": false, 
+          "required": [
+            "clientId"
+          ], 
+          "type": "object", 
+          "properties": {
+            "clientId": {
+              "type": "string", 
+              "description": "The OAuth consumer key corresponding to the consumer registered for your add-on."
+            }
+          }, 
+          "description": "This configures your add-on for OAuth 2.0 use. Many add-ons have\nclient-side javascript that makes Bitbucket API calls from inside\nthe iframe on the end user's behalf. This uses OAuth 2 access tokens.\n\nWhile the Javascript bridge code abstracts away the end-user\nauthorization dialogs and token requests, for this to work the add-on\nneeds to be linked to an existing OAuth consumer/client (to set this\nup, see the documentation). This module establishes that linking.\n\nNote that OAuth 2 requires a callback URL to be configured on the\nconsumer/client. Also, to be able to successfully and transparently\nobtain access tokens from within your iframe's javascript, your\ncallback URL *MUST* match the add-on's baseUrl. More specifically,\nthe callback URL must start with the baseUrl. For example:\n\n```\nbaseUrl: https://foo.herokuapp.com/base\ncallbackUrl: https://foo.herokuapp.com/base/oauth/callback\n```\n\nThe access token's scopes are configured statically on the\nconsumer/client, not in the descriptor. See the\n[OAuth 2.0 documentation](../concepts/oauth2.html) for more information\non using OAuth from the backend, outside the iframe's javascript."
+        }, 
+        "generalPage": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "A general page module allows add-ons to insert new pages into Atlassian\nproducts, with no extra styling. By default a link to the page is displayed\nin the main navigation menu.\nSee https://developer.atlassian.com/static/connect/docs/latest/modules/common/page.html\nfor more details."
+        }, 
+        "adminPage": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Used to show a link and full page within an admin section"
+        }, 
+        "profileTab": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Module for pages on the profile page."
+        }, 
+        "repoPages": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Module for pages in the repo sidebar menu"
+        }, 
+        "webPanels": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Adds a panel (or section) to a page in the application.\nSee https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-panel.html\nfor more details.\n\nPanels let you present related information and controls in the application\ninterface as a group."
+        }, 
+        "webItems": {
+          "items": {
+            "anyOf": [
+              {
+                "additionalProperties": false, 
+                "required": [
+                  "url", 
+                  "name", 
+                  "key"
+                ], 
+                "type": "object", 
+                "properties": {
+                  "styleClasses": {
+                    "items": {
+                      "pattern": "^[_a-zA-Z]+[_a-zA-Z0-9-]*$", 
+                      "type": "string", 
+                      "maxLength": 200
+                    }, 
+                    "type": "array", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#styleClasses"
+                  }, 
+                  "context": {
+                    "enum": [
+                      "page", 
+                      "PAGE"
+                    ], 
+                    "type": "string", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#context"
+                  }, 
+                  "name": {
+                    "$ref": "#/definitions/django_connect.schema.I18nProperty"
+                  }, 
+                  "weight": {
+                    "default": 100, 
+                    "minimum": 0, 
+                    "type": "integer", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+                  }, 
+                  "url": {
+                    "pattern": "^[a-zA-Z0-9-]+$", 
+                    "type": "string", 
+                    "maxLength": 255
+                  }, 
+                  "tooltip": {
+                    "$ref": "#/definitions/django_connect.schema.I18nProperty"
+                  }, 
+                  "params": {
+                    "additionalProperties": true, 
+                    "type": "object"
+                  }, 
+                  "location": {
+                    "enum": [
+                      "org.bitbucket.repository.overview.informationPanel", 
+                      "org.bitbucket.pullrequest.summary.info", 
+                      "org.bitbucket.branch.summary.info", 
+                      "org.bitbucket.commit.summary.info", 
+                      "org.bitbucket.account.admin", 
+                      "org.bitbucket.branch.summary.actions", 
+                      "org.bitbucket.repository.admin", 
+                      "org.bitbucket.repository.actions", 
+                      "org.bitbucket.commit.summary.actions", 
+                      "org.bitbucket.repository.source.fileviewer", 
+                      "org.bitbucket.repository.navigation", 
+                      "org.bitbucket.pullrequest.summary.actions"
+                    ], 
+                    "type": "string", 
+                    "description": "Location in the application interface", 
+                    "maxLength": 128
+                  }, 
+                  "key": {
+                    "pattern": "^[a-zA-Z0-9-]+$", 
+                    "type": "string", 
+                    "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                    "maxLength": 128
+                  }, 
+                  "target": {
+                    "oneOf": [
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetPageSchema"
+                      }, 
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetDialogSchema"
+                      }, 
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetInlineDialogSchema"
+                      }
+                    ]
+                  }, 
+                  "conditions": {
+                    "items": {
+                      "anyOf": [
+                        {
+                          "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                        }, 
+                        {
+                          "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                        }
+                      ]
+                    }, 
+                    "type": "array", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+                  }, 
+                  "icon": {
+                    "$ref": "#/definitions/django_connect.schema.Icon"
+                  }
+                }
+              }, 
+              {
+                "additionalProperties": false, 
+                "required": [
+                  "url", 
+                  "name", 
+                  "key"
+                ], 
+                "type": "object", 
+                "properties": {
+                  "styleClasses": {
+                    "items": {
+                      "pattern": "^[_a-zA-Z]+[_a-zA-Z0-9-]*$", 
+                      "type": "string", 
+                      "maxLength": 200
+                    }, 
+                    "type": "array", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#styleClasses"
+                  }, 
+                  "context": {
+                    "default": "addon", 
+                    "enum": [
+                      "addon", 
+                      "ADDON", 
+                      "product", 
+                      "PRODUCT"
+                    ], 
+                    "type": "string", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#context"
+                  }, 
+                  "name": {
+                    "$ref": "#/definitions/django_connect.schema.I18nProperty"
+                  }, 
+                  "weight": {
+                    "default": 100, 
+                    "minimum": 0, 
+                    "type": "integer", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+                  }, 
+                  "url": {
+                    "format": "uri-template", 
+                    "type": "string", 
+                    "maxLength": 255
+                  }, 
+                  "tooltip": {
+                    "$ref": "#/definitions/django_connect.schema.I18nProperty"
+                  }, 
+                  "params": {
+                    "additionalProperties": true, 
+                    "type": "object"
+                  }, 
+                  "location": {
+                    "enum": [
+                      "org.bitbucket.repository.overview.informationPanel", 
+                      "org.bitbucket.pullrequest.summary.info", 
+                      "org.bitbucket.branch.summary.info", 
+                      "org.bitbucket.commit.summary.info", 
+                      "org.bitbucket.account.admin", 
+                      "org.bitbucket.branch.summary.actions", 
+                      "org.bitbucket.repository.admin", 
+                      "org.bitbucket.repository.actions", 
+                      "org.bitbucket.commit.summary.actions", 
+                      "org.bitbucket.repository.source.fileviewer", 
+                      "org.bitbucket.repository.navigation", 
+                      "org.bitbucket.pullrequest.summary.actions"
+                    ], 
+                    "type": "string", 
+                    "description": "Location in the application interface", 
+                    "maxLength": 128
+                  }, 
+                  "key": {
+                    "pattern": "^[a-zA-Z0-9-]+$", 
+                    "type": "string", 
+                    "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                    "maxLength": 128
+                  }, 
+                  "target": {
+                    "oneOf": [
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetPageSchema"
+                      }, 
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetDialogSchema"
+                      }, 
+                      {
+                        "$ref": "#/definitions/django_connect.schema.WebItemTargetInlineDialogSchema"
+                      }
+                    ]
+                  }, 
+                  "conditions": {
+                    "items": {
+                      "anyOf": [
+                        {
+                          "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                        }, 
+                        {
+                          "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                        }
+                      ]
+                    }, 
+                    "type": "array", 
+                    "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+                  }, 
+                  "icon": {
+                    "$ref": "#/definitions/django_connect.schema.Icon"
+                  }
+                }
+              }
+            ]
+          }, 
+          "type": "array", 
+          "description": "Adds a web item to a specified location in the application interface.\nA web item is a hyperlink that's inserted into some standard place in the\nBitbucket user interface, such as the repository side bar or header. The\nform that the link takes can vary depending on the location. In some cases\nit may render as an item in a drop-down menu, or as a button.\n\nA web item link can open a link to an external site, a new page in the\napplication or a dialog, depending on your configuration.\n\nYou can inject additional context from the application (for example, the\ncontext repository or current user) by using variable tokens known as\n\"context parameters\" in the url."
+        }, 
+        "webPanel": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Adds a panel (or section) to a page in the application.\nSee https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-panel.html\nfor more details.\n\nPanels let you present related information and controls in the application\ninterface as a group."
+        }, 
+        "repoPage": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Module for pages in the repo sidebar menu"
+        }, 
+        "configurePage": {
+          "oneOf": [
+            {
+              "$ref": "#/definitions/django_connect.schema.BasePageModuleSchema"
+            }, 
+            {
+              "items": {
+                "$ref": "#/definitions/django_connect.schema.BasePageModuleSchema"
+              }, 
+              "type": "array", 
+              "description": "Used to configure the addon itself.\nSee https://developer.atlassian.com/static/connect/docs/latest/modules/common/page.html\nfor more details.\n\nA link to the page is displayed in the add-on's entry in Manage Add-ons.\nUnlike the other page modules, an add-on may only define a single\nconfigurePage.", 
+              "maxItems": 1
+            }
+          ]
+        }, 
+        "profileTabs": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Module for pages on the profile page."
+        }, 
+        "webhooks": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "event"
+            ], 
+            "type": "object", 
+            "properties": {
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "event": {
+                "enum": [
+                  "pullrequest:comment_deleted", 
+                  "pullrequest:superseded", 
+                  "repo:fork", 
+                  "pullrequest:rejected", 
+                  "*", 
+                  "pullrequest:fulfilled", 
+                  "repo:branch_deleted", 
+                  "user:account_property_changed", 
+                  "repo:commit", 
+                  "pullrequest:comment_created", 
+                  "pullrequest:unapproved", 
+                  "repo:branch_created", 
+                  "issue:created", 
+                  "repo:commit_comment_created", 
+                  "pullrequest:approved", 
+                  "issue:comment_created", 
+                  "issue:updated", 
+                  "pullrequest:updated", 
+                  "pullrequest:created", 
+                  "repo:push"
+                ], 
+                "type": "string", 
+                "description": "The event identifier", 
+                "maxLength": 64
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Webhooks notify your add-on when certain events happen in Bitbucket.\nWhen an event that you have subscribed to occurs, Bitbucket will make a\nPOST request containing JSON data relating to the event to the URL you\nhave specified.\n\nTo receive webhook events, your add-on needs to include the webhook\nmodule declaration in its JSON descriptor. The declaration indicates the\nrelative URL of the local resource at which it will receive the\nnotification. In other words, the Atlassian application will send an HTTP\nPOST to this resource in response to an application event. The add-on code\nthat handles the POST should process any information passed in the body of\nthe message, as appropriate. Each webhook POST sent to the add-on will\nalso include the authentication headers that allow the add-on to validate\nthe authenticity of that request. Specifically, the JWT token can be found\nin the `Authorization` HTTP header.\n\nNote that some proxies will strip out the `Authorization` header by\ndefault (e.g. Apache and mod_wsgi) so extra configuration may be required\nto ensure the Authentication header is visible."
+        }, 
+        "generalPages": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_connect.schema.Icon"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "A general page module allows add-ons to insert new pages into Atlassian\nproducts, with no extra styling. By default a link to the page is displayed\nin the main navigation menu.\nSee https://developer.atlassian.com/static/connect/docs/latest/modules/common/page.html\nfor more details."
+        }, 
+        "fileViews": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "file_matches": {
+                "type": "object", 
+                "properties": {
+                  "extensions": {
+                    "minItems": 1, 
+                    "items": {
+                      "type": "string", 
+                      "title": "File extensions this can match."
+                    }, 
+                    "type": "array"
+                  }, 
+                  "names": {
+                    "minItems": 1, 
+                    "items": {
+                      "type": "string", 
+                      "title": "Exact file name this can match."
+                    }, 
+                    "type": "array"
+                  }
+                }
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }
+            }
+          }, 
+          "type": "array", 
+          "description": "Module for panel in the file viewer"
+        }, 
+        "adminPages": {
+          "items": {
+            "additionalProperties": false, 
+            "required": [
+              "url", 
+              "name", 
+              "key"
+            ], 
+            "type": "object", 
+            "properties": {
+              "name": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "weight": {
+                "default": 100, 
+                "minimum": 0, 
+                "type": "integer", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#weight"
+              }, 
+              "url": {
+                "format": "uri-template", 
+                "type": "string", 
+                "maxLength": 255
+              }, 
+              "tooltip": {
+                "$ref": "#/definitions/django_connect.schema.I18nProperty"
+              }, 
+              "params": {
+                "additionalProperties": true, 
+                "type": "object"
+              }, 
+              "location": {
+                "enum": [
+                  "org.bitbucket.repository.overview.informationPanel", 
+                  "org.bitbucket.pullrequest.summary.info", 
+                  "org.bitbucket.branch.summary.info", 
+                  "org.bitbucket.commit.summary.info", 
+                  "org.bitbucket.account.admin", 
+                  "org.bitbucket.branch.summary.actions", 
+                  "org.bitbucket.repository.admin", 
+                  "org.bitbucket.repository.actions", 
+                  "org.bitbucket.commit.summary.actions", 
+                  "org.bitbucket.repository.source.fileviewer", 
+                  "org.bitbucket.repository.navigation", 
+                  "org.bitbucket.pullrequest.summary.actions"
+                ], 
+                "type": "string", 
+                "description": "Location in the application interface", 
+                "maxLength": 128
+              }, 
+              "key": {
+                "pattern": "^[a-zA-Z0-9-]+$", 
+                "type": "string", 
+                "description": "A unique key within the add-on. See https://developer.atlassian.com/static/connect/docs/latest/modules/common/web-item.html#key", 
+                "maxLength": 128
+              }, 
+              "conditions": {
+                "items": {
+                  "anyOf": [
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.SimpleConditionSchema"
+                    }, 
+                    {
+                      "$ref": "#/definitions/django_connect.conditions.CompositeConditionSchema"
+                    }
+                  ]
+                }, 
+                "type": "array", 
+                "description": "https://developer.atlassian.com/static/connect/docs/latest/concepts/conditions.html"
+              }, 
+              "icon": {
+                "$ref": "#/definitions/django_c
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.