{
  "swagger": "2.0",
  "info": {
    "version": "preview",
    "title": "App Center Client",
    "description": "Microsoft Visual Studio App Center API"
  },
  "host": "api.appcenter.ms",
  "basePath": "/",
  "schemes": [
    "https"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/v0.1/users/{user_id}/devices/register": {
      "post": {
        "description": "Registers a user for an existing device",
        "parameters": [
          {
            "name": "user_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the user",
            "required": true
          },
          {
            "name": "body",
            "description": "The device info.",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeviceInfoRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceInfoResponse"
            }
          },
          "404": {
            "description": "<b>not_found</b>: The user or the device can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "operationId": "devices_registerUserForDevice",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/user/notifications/emailSettings": {
      "get": {
        "operationId": "notifications_getUserEmailSettings",
        "description": "Get Default email notification settings for the user",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AlertUserEmailSettingsResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/AlertingError"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "alerting"
        ]
      }
    },
    "/v0.1/user/invitations/orgs/{invitation_token}/reject": {
      "post": {
        "description": "Rejects a pending organization invitation",
        "parameters": [
          {
            "$ref": "#/parameters/invitation_token"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "orgInvitations_reject",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/user/invitations/orgs/{invitation_token}/accept": {
      "post": {
        "description": "Accepts a pending organization invitation for the specified user",
        "parameters": [
          {
            "$ref": "#/parameters/invitation_token"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "orgInvitations_accept",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/user/invitations/distribution_groups/accept": {
      "post": {
        "description": "Accepts all pending invitations to distribution groups for the specified user",
        "parameters": [],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroupInvitations_acceptAll",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/user/invitations/apps/{invitation_token}/reject": {
      "post": {
        "description": "Rejects a pending invitation for the specified user",
        "parameters": [
          {
            "$ref": "#/parameters/invitation_token"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "appInvitations_reject",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/user/invitations/apps/{invitation_token}/accept": {
      "post": {
        "description": "Accepts a pending invitation for the specified user",
        "parameters": [
          {
            "$ref": "#/parameters/invitation_token"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "appInvitations_accept",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/user/export/serviceConnections": {
      "get": {
        "description": "Gets all service connections of the service type for GDPR export.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/SharedConnectionResponse"
              }
            }
          },
          "default": {
            "description": "bad_request: proper details are not provided for connection in body.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "operationId": "sharedconnection_Connections",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/user/dsr/export/{token}/cancel": {
      "post": {
        "operationId": "DataSubjectRight_CancelExportRequest",
        "parameters": [
          {
            "$ref": "#/parameters/DataSubjectRightRequestToken"
          }
        ],
        "responses": {
          "202": {
            "description": "Data subject right cancel export request has been accepted.",
            "headers": {
              "Location": {
                "type": "string",
                "description": "Link to get details about the cancel export."
              }
            },
            "schema": {
              "$ref": "#/definitions/DataSubjectRightResponse"
            }
          },
          "503": {
            "description": "Cancel export request cannot be processed yet.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "gdpr"
        ]
      }
    },
    "/v0.1/user/dsr/export/{token}": {
      "get": {
        "operationId": "DataSubjectRight_ExportStatusRequest",
        "parameters": [
          {
            "$ref": "#/parameters/DataSubjectRightRequestToken"
          }
        ],
        "responses": {
          "200": {
            "description": "Data subject right export request status successfully retrieved.",
            "schema": {
              "$ref": "#/definitions/DataSubjectRightStatusResponse"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "gdpr"
        ]
      }
    },
    "/v0.1/user/dsr/export": {
      "post": {
        "operationId": "DataSubjectRight_ExportRequest",
        "parameters": [],
        "responses": {
          "202": {
            "description": "Data subject right export request has been accepted.",
            "headers": {
              "Location": {
                "type": "string",
                "description": "Link to get details about the export."
              }
            },
            "schema": {
              "$ref": "#/definitions/DataSubjectRightResponse"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "gdpr"
        ]
      }
    },
    "/v0.1/user/dsr/delete/{token}/cancel": {
      "post": {
        "operationId": "DataSubjectRight_CancelDeleteRequest",
        "parameters": [
          {
            "$ref": "#/parameters/DataSubjectRightRequestToken"
          },
          {
            "name": "email",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/DataSubjectRightEmailRequest"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Data subject right cancel delete request has been accepted.",
            "headers": {
              "Location": {
                "type": "string",
                "description": "Link to get details about the cancel delete."
              }
            },
            "schema": {
              "$ref": "#/definitions/DataSubjectRightResponse"
            }
          },
          "503": {
            "description": "Cancel delete request cannot be processed yet.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "gdpr"
        ]
      }
    },
    "/v0.1/user/dsr/delete/{token}": {
      "get": {
        "operationId": "DataSubjectRight_DeleteStatusRequest",
        "parameters": [
          {
            "$ref": "#/parameters/DataSubjectRightRequestToken"
          },
          {
            "$ref": "#/parameters/DataSubjectRightEmail"
          }
        ],
        "responses": {
          "200": {
            "description": "Data subject right delete request status successfully retrieved.",
            "schema": {
              "$ref": "#/definitions/DataSubjectRightStatusResponse"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "gdpr"
        ]
      }
    },
    "/v0.1/user/dsr/delete": {
      "post": {
        "operationId": "DataSubjectRight_DeleteRequest",
        "parameters": [],
        "responses": {
          "202": {
            "description": "Data subject right delete request has been accepted.",
            "headers": {
              "Location": {
                "type": "string",
                "description": "Link to get details about the delete."
              }
            },
            "schema": {
              "$ref": "#/definitions/DataSubjectRightResponse"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "gdpr"
        ]
      }
    },
    "/v0.1/user/devices/{device_udid}": {
      "get": {
        "operationId": "devices_deviceDetails",
        "description": "Returns the device details.",
        "parameters": [
          {
            "name": "device_udid",
            "type": "string",
            "in": "path",
            "description": "The UDID of the device",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DeviceInfoResponse"
            }
          },
          "400": {
            "description": "<b>bad_request</b>: Devices information can only be requested for iOS apps.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "403": {
            "description": "<b>forbidden</b>: The user is not allowed to view someone else's device.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "<b>not_found</b>: The user or device can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "delete": {
        "description": "Removes an existing device from a user",
        "parameters": [
          {
            "name": "device_udid",
            "type": "string",
            "in": "path",
            "description": "The UDID of the device",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "403": {
            "description": "<b>forbidden</b>: The user is not allowed to delete someone else's device.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "<b>not_found</b>: The user or the device can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "operationId": "devices_removeUserDevice",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/user/devices": {
      "get": {
        "operationId": "devices_userDevicesList",
        "description": "Returns all devices associated with the given user.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DeviceInfoResponse"
              }
            }
          },
          "400": {
            "description": "<b>bad_request</b>: Devices information can only be requested for iOS apps.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "403": {
            "description": "<b>forbidden</b>: The user is not allowed to view someone else's devices.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "<b>not_found</b>: A user can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/user": {
      "get": {
        "description": "Returns the user profile data",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/UserProfileResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "users_get",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "patch": {
        "description": "Updates the user profile and returns the updated user data",
        "parameters": [
          {
            "name": "user",
            "in": "body",
            "description": "The data for the created user",
            "required": true,
            "schema": {
              "$ref": "#/definitions/UserUpdateRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/UserProfileResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "users_update",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/tester/apps": {
      "get": {
        "operationId": "releases_listTesterApps",
        "description": "Return a list of applications that the user has tester permission to with the latest release for each.",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TesterAppWithReleaseResponse"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/sdk/apps/{app_secret}/releases/{release_hash}": {
      "get": {
        "description": "Get a release with hash 'release_hash' or the 'latest' from all the distribution groups assigned to the current user.",
        "operationId": "releases_getLatestByHash",
        "parameters": [
          {
            "name": "app_secret",
            "type": "string",
            "in": "path",
            "description": "The secret of the target application",
            "required": true
          },
          {
            "name": "release_hash",
            "type": "string",
            "in": "path",
            "description": "The hash of the release or 'latest' to get the latest release from all the distribution groups assigned to the current user.",
            "required": true
          },
          {
            "name": "udid",
            "type": "string",
            "in": "query",
            "description": "When passing `udid` in the query string, a provisioning check for the given device ID will be done. Will be ignored for non-iOS platforms.",
            "required": false
          }
        ],
        "responses": {
          "200": {
            "description": "If called with a specific `release_hash` return the app's 'display_name'' and 'buildIdentifier'. If 'release_hash' is 'latest' return the full release details of the latest release that was distributed to the current user (from all the distribution groups).",
            "schema": {
              "$ref": "#/definitions/ReleaseDetailsResponse"
            }
          },
          "404": {
            "description": "Error codes:\n- `not_found` - A release or an app can't be found.\n- `no_releases_for_user` - No releases available for that user (will only be returned when `release_hash` is `latest`)\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/users/{user_name}": {
      "patch": {
        "description": "Updates the given organization user",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/user_name"
          },
          {
            "name": "organization_user",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OrganizationUserPatchRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/OrganizationUserResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "users_updateOrgRole",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Removes a user from an organization.",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/user_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "users_removeFromOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/users": {
      "get": {
        "description": "Returns a list of users that belong to an organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/OrganizationUserResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "users_listForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/testers": {
      "get": {
        "description": "Returns a unique list of users including the whole organization members plus testers in any shared group of that org",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupTesterGetResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_listAllTestersForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/teams/{team_name}/users/{user_name}": {
      "delete": {
        "description": "Removes a user from a team that is owned by an organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          },
          {
            "$ref": "#/parameters/user_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_removeUser",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/teams/{team_name}/users": {
      "get": {
        "description": "Returns the users of a team which is owned by an organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/TeamUserResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_getUsers",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "post": {
        "description": "Adds a new user to a team that is owned by an organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          },
          {
            "name": "user_email",
            "in": "body",
            "description": "The email of the user to add to the team",
            "schema": {
              "$ref": "#/definitions/UserEmailRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/TeamUserResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_addUser",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/teams/{team_name}/apps/{app_name}": {
      "patch": {
        "description": "Updates the permissions the team has to the app",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "name": "team",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/TeamAppUpdateRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppWithTeamPermissionsResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_updatePermissions",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Removes an app from a team",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_removeApp",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/teams/{team_name}/apps": {
      "post": {
        "description": "Adds an app to a team",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          },
          {
            "name": "app",
            "in": "body",
            "description": "The name of the app to be added to the team. The app has to be owned by the organization.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AppAddRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppWithTeamPermissionsResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_addApp",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "get": {
        "description": "Returns the apps a team has access to",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AppWithTeamPermissionsResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_listApps",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/teams/{team_name}": {
      "get": {
        "description": "Returns the details of a single team",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/TeamResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_getTeam",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Deletes a single team",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_delete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "patch": {
        "description": "Updates a single team",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/team_name"
          },
          {
            "name": "team",
            "in": "body",
            "description": "The information used to create the team",
            "schema": {
              "$ref": "#/definitions/TeamRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/TeamResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_update",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/teams": {
      "get": {
        "description": "Returns the list of all teams in this org",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TeamResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_listAll",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "post": {
        "description": "Creates a team and returns it",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "name": "team",
            "in": "body",
            "description": "The information used to create the team",
            "schema": {
              "$ref": "#/definitions/TeamRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TeamResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_createTeam",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/invitations/{email}/revoke": {
      "post": {
        "description": "Removes a user's invitation to an organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/email"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "orgInvitations_",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/invitations/{email}/resend": {
      "post": {
        "description": "Cancels an existing organization invitation for the user and sends a new one",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/email"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "orgInvitations_sendNewInvitation",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/invitations/{email}": {
      "patch": {
        "description": "Allows the role of an invited user to be changed",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/email"
          },
          {
            "name": "user_role",
            "in": "body",
            "description": "The new role of the user",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OrganizationUserPatchRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "orgInvitations_update",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/invitations": {
      "post": {
        "description": "Invites a new or existing user to an organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "name": "user_email",
            "in": "body",
            "description": "The email of the user to invite",
            "schema": {
              "$ref": "#/definitions/UserEmailRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "orgInvitations_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Removes a user's invitation to an organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "name": "user_email",
            "in": "body",
            "description": "The email of the user whose invitation should be removed",
            "schema": {
              "$ref": "#/definitions/UserEmailRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "orgInvitations_delete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "get": {
        "description": "Gets the pending invitations for the organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/OrganizationInvitationSimpleDetailResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "orgInvitations_listPending",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/distribution_groups_details": {
      "get": {
        "description": "Returns a list of distribution groups with details for an organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/apps_limit"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/OrgDistributionGroupDetailsResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_detailsForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/distribution_groups/{distribution_group_name}/resend_invite": {
      "post": {
        "description": "Resend shared distribution group invite notification to previously invited testers",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "$ref": "#/parameters/members"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_resendSharedInvite",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/distribution_groups/{distribution_group_name}/members/bulk_delete": {
      "post": {
        "description": "Delete apps from distribution group in an org",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "$ref": "#/parameters/members"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          }
        },
        "operationId": "distributionGroups_bulkDeleteUsers",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/distribution_groups/{distribution_group_name}/members": {
      "get": {
        "description": "Returns a list of member in the distribution group specified",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupUserGetResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_listUsersForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "post": {
        "description": "Accepts an array of user email addresses to get added to the specified group",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "name": "member_emails",
            "in": "body",
            "description": "list of user email addresses that should get added as members to the specified group",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DistributionGroupUserRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupUserPostResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_addUsersForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/distribution_groups/{distribution_group_name}/apps/bulk_delete": {
      "post": {
        "description": "Delete apps from distribution group in an org",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "name": "apps",
            "in": "body",
            "description": "The name of the apps to be deleted from the distribution group. The apps have to be owned by the organization.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DistributionGroupAppsDeleteRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          }
        },
        "operationId": "distributionGroups_bulkDeleteApps",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/distribution_groups/{distribution_group_name}/apps": {
      "get": {
        "description": "Get apps from a distribution group in an org",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/OrgDistributionGroupAppResponse"
              }
            }
          }
        },
        "operationId": "distributionGroups_getApps",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "post": {
        "description": "Add apps to distribution group in an org",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "name": "apps",
            "in": "body",
            "description": "The name of the apps to be added to the distribution group. The apps have to be owned by the organization.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DistributionGroupAppAddRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          }
        },
        "operationId": "distributionGroups_addApps",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/distribution_groups/{distribution_group_name}": {
      "get": {
        "description": "Returns a single distribution group in org for a given distribution group name",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DistributionGroupResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_getForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "patch": {
        "description": "Update one given distribution group name in an org",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "$ref": "#/parameters/distribution_group_for_patch"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DistributionGroupResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_patchForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Deletes a single distribution group from an org with a given distribution group name",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_deleteForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/distribution_groups": {
      "post": {
        "description": "Creates a disribution goup which can be shared across apps under an organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/distribution_group"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DistributionGroupResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_createForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "get": {
        "description": "Returns a list of distribution groups in the org specified",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_listForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/azure_subscriptions": {
      "get": {
        "description": "Returns a list of azure subscriptions for the organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AzureSubscriptionResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "azureSubscription_listForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/avatar": {
      "post": {
        "description": "Sets the organization avatar",
        "consumes": [
          "multipart/form-data"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/organization_avatar"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/OrganizationResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "organization_updateAvatar",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Deletes the uploaded organization avatar",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/OrganizationResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "organization_deleteAvatar",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/apps": {
      "post": {
        "description": "Creates a new app for the organization and returns it to the caller",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "$ref": "#/parameters/app"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppResponse"
            }
          },
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_createForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "get": {
        "description": "Returns a list of apps for the organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AppResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_listForOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}": {
      "get": {
        "description": "Returns the details of a single organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/OrganizationResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "organizations_get",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "patch": {
        "description": "Returns a list of organizations the requesting user has access to",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "name": "org",
            "in": "body",
            "description": "The data for the org",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OrganizationPatchRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/OrganizationResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "organizations_update",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Deletes a single organization",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "organizations_delete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{orgName}/billing/aggregated": {
      "get": {
        "operationId": "billingAggregatedInformation_getForOrg",
        "description": "Aggregated Billing Information for a given Organization.",
        "parameters": [
          {
            "$ref": "#/parameters/BillingOrgNameParameter"
          },
          {
            "$ref": "#/parameters/ServiceTypeFilterParameter"
          },
          {
            "$ref": "#/parameters/PeriodTypeFilterParameter"
          },
          {
            "$ref": "#/parameters/ShowOriginalPlansFilterParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Aggregated Billing Information for a given Organization",
            "schema": {
              "$ref": "#/definitions/AggregatedBillingInformation"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/BillingError"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "billing"
        ]
      }
    },
    "/v0.1/orgs": {
      "post": {
        "description": "Creates a new organization and returns it to the caller",
        "parameters": [
          {
            "name": "organization",
            "in": "body",
            "description": "The organization data",
            "required": true,
            "schema": {
              "$ref": "#/definitions/OrganizationRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/OrganizationResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "organizations_createOrUpdate",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "get": {
        "description": "Returns a list of organizations the requesting user has access to",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "properties": {
                  "display_name": {
                    "description": "The display name of the organization",
                    "type": "string"
                  },
                  "name": {
                    "description": "The slug name of the organization",
                    "type": "string"
                  },
                  "origin": {
                    "description": "The creation origin of this organization",
                    "type": "string",
                    "enum": [
                      "appcenter",
                      "hockeyapp"
                    ]
                  }
                },
                "required": [
                  "display_name",
                  "name",
                  "origin"
                ]
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "organizations_list",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/invitations/sent": {
      "get": {
        "description": "Returns all invitations sent by the caller",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/GDPRInvitationDetailResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "invitations_sent",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/azure_subscriptions": {
      "get": {
        "description": "Returns a list of azure subscriptions for the user",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AzureSubscriptionResponse"
              }
            }
          },
          "default": {
            "description": "BadRequest",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "azureSubscription_listForUser",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/xcode_versions": {
      "get": {
        "description": "Gets the Xcode versions available to this app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/XcodeVersions"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "builds_listXcodeVersions",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/xamarin_sdk_bundles": {
      "get": {
        "description": "Gets the Xamarin SDK bundles available to this app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/XamarinSDKBundles"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "builds_listXamarinSDKBundles",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/webhooks": {
      "get": {
        "operationId": "webhooks_list",
        "description": "Get web hooks configured for a particular app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AlertWebhookListResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/AlertingError"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "alerting"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/versions": {
      "get": {
        "description": "Gets a list of application versions. Available for UWP apps only.",
        "deprecated": true,
        "summary": "Available for UWP apps only.",
        "operationId": "crashes_getAppVersions",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AppVersion"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/users/{user_email}": {
      "delete": {
        "description": "Removes the user from the app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "name": "user_email",
            "type": "string",
            "in": "path",
            "description": "The user email of the user to delete",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "BadRequest",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_removeUser",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "patch": {
        "description": "Update user permission for the app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "name": "user_email",
            "type": "string",
            "in": "path",
            "description": "The user email of the user to patch",
            "required": true
          },
          {
            "name": "user_app_permissions_data",
            "in": "body",
            "description": "The value to update the user permission for the app.",
            "schema": {
              "$ref": "#/definitions/UserAppPermissionsUpdateRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "BadRequest",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_updateUserPermissions",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/users": {
      "get": {
        "description": "Returns the users associated with the app specified with the given app name which belongs to the given owner.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserProfileResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "users_list",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/user/device_sets/{id}": {
      "get": {
        "description": "Gets a device set belonging to the user",
        "operationId": "test_getDeviceSetOfUser",
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The UUID of the device set",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DeviceSet"
            }
          },
          "404": {
            "description": "Device set with the given ID was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "put": {
        "description": "Updates a device set belonging to the user",
        "operationId": "test_updateDeviceSetOfUser",
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The UUID of the device set",
            "required": true
          },
          {
            "name": "deviceSet",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/DeviceSetUpdate"
            },
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DeviceSet"
            }
          },
          "400": {
            "description": "Invalid list of device IDs or conflicting name",
            "schema": {
              "$ref": "#/definitions/TestCloudErrorDetails"
            }
          },
          "404": {
            "description": "Device set with the given ID was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "delete": {
        "description": "Deletes a device set belonging to the user",
        "operationId": "test_deleteDeviceSetOfUser",
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The UUID of the device set",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Device set with the given ID was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/user/device_sets": {
      "get": {
        "description": "Lists device sets belonging to the user",
        "operationId": "test_listDeviceSetsOfUser",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DeviceSet"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "post": {
        "description": "Creates a device set belonging to the user",
        "operationId": "test_createDeviceSetOfUser",
        "parameters": [
          {
            "name": "deviceSet",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/DeviceSetUpdate"
            },
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DeviceSet"
            }
          },
          "400": {
            "description": "Invalid list of device IDs or conflicting name",
            "schema": {
              "$ref": "#/definitions/TestCloudErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/transfer_to_org": {
      "post": {
        "description": "Transfers ownership of an app to a new organization",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/OrganizationResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_transferToOrg",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/transfer/{destination_owner_name}": {
      "post": {
        "description": "Transfers ownership of an app to a different user or organization",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "name": "destination_owner_name",
            "type": "string",
            "in": "path",
            "description": "The name of the owner (user or organization) to which the app is being transferred",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_transferOwnership",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/testers": {
      "get": {
        "description": "Returns the testers associated with the app specified with the given app name which belongs to the given owner.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/UserProfileResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_listTesters",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_series/{test_series_slug}/test_runs": {
      "get": {
        "description": "Returns list of all test runs for a given test series",
        "operationId": "test_getAllTestRunsForSeries",
        "parameters": [
          {
            "name": "test_series_slug",
            "type": "string",
            "in": "path",
            "description": "The slug of the test series",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TestRun"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_series/{test_series_slug}": {
      "delete": {
        "description": "Deletes a single test series",
        "operationId": "test_deleteTestSeries",
        "parameters": [
          {
            "name": "test_series_slug",
            "type": "string",
            "in": "path",
            "description": "The slug of the test series",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Test series was successfully removed"
          },
          "404": {
            "description": "The test series was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "patch": {
        "description": "Updates name and slug of a test series",
        "operationId": "test_patchTestSeries",
        "parameters": [
          {
            "name": "test_series_slug",
            "type": "string",
            "in": "path",
            "description": "The slug of the test series",
            "required": true
          },
          {
            "name": "name",
            "schema": {
              "$ref": "#/definitions/TestSeriesName"
            },
            "in": "body",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Test series was successfully patched",
            "schema": {
              "$ref": "#/definitions/TestSeries"
            }
          },
          "400": {
            "description": "The new test series name is incorrect"
          },
          "404": {
            "description": "Test series with the given slug name was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_series": {
      "get": {
        "description": "Returns list of all test series for an application",
        "operationId": "test_getAllTestSeries",
        "parameters": [
          {
            "name": "query",
            "type": "string",
            "in": "query",
            "description": "A query string to filter test series",
            "required": false
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TestSeries"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "post": {
        "description": "Creates new test series for an application",
        "operationId": "test_createTestSeries",
        "parameters": [
          {
            "name": "testSeriesName",
            "schema": {
              "$ref": "#/definitions/TestSeriesName"
            },
            "in": "body",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestSeries"
            }
          },
          "400": {
            "description": "Invalid test series name",
            "schema": {
              "$ref": "#/definitions/TestCloudErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_runs/{test_run_id}/stop": {
      "put": {
        "description": "Stop a test run execution",
        "operationId": "test_stopTestRun",
        "parameters": [
          {
            "name": "test_run_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the test run to be stopped",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestRun"
            }
          },
          "404": {
            "description": "Test run with the given ID was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_runs/{test_run_id}/state": {
      "get": {
        "description": "Gets state of the test run",
        "operationId": "test_getTestRunState",
        "parameters": [
          {
            "name": "test_run_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the test run",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestRunState"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_runs/{test_run_id}/start": {
      "post": {
        "description": "Starts test run",
        "operationId": "test_startTestRun",
        "parameters": [
          {
            "name": "test_run_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the test run",
            "required": true
          },
          {
            "name": "startOptions",
            "schema": {
              "$ref": "#/definitions/TestCloudStartTestRunOptions"
            },
            "in": "body",
            "description": "Option required to start the test run",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestCloudStartTestRunResult"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_runs/{test_run_id}/report": {
      "get": {
        "description": "Returns a single test report",
        "operationId": "test_getTestReport",
        "parameters": [
          {
            "name": "test_run_id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The ID of the test run",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestReport"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_runs/{test_run_id}/hashes/batch": {
      "post": {
        "description": "Adds file with the given hash to a test run",
        "operationId": "test_uploadHashesBatch",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "test_run_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the test run",
            "required": true
          },
          {
            "name": "file_info",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TestCloudFileHash"
              }
            },
            "in": "body",
            "description": "File hash information",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TestCloudFileHashResponse"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_runs/{test_run_id}/hashes": {
      "post": {
        "description": "Adds file with the given hash to a test run",
        "operationId": "test_uploadHash",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "test_run_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the test run",
            "required": true
          },
          {
            "name": "file_info",
            "schema": {
              "$ref": "#/definitions/TestCloudFileHashDeprecated"
            },
            "in": "body",
            "description": "File hash information",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "OK"
          },
          "401": {
            "description": "Byte range verification required for given SHA256 hash",
            "headers": {
              "X-Challenge-Bytes": {
                "description": "Byte range required to authenticate the request",
                "type": "string"
              }
            }
          },
          "412": {
            "description": "File with given SHA256 hash doesn't exist and must be uploaded"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_runs/{test_run_id}/files": {
      "post": {
        "description": "Uploads file for a test run",
        "operationId": "test_startUploadingFile",
        "consumes": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "test_run_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the test run",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "File was created and can be uploaded",
            "headers": {
              "Location": {
                "description": "Relative URL that points to the upload endpoint",
                "type": "string"
              }
            }
          },
          "400": {
            "description": "Bad request"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_runs/{test_run_id}": {
      "get": {
        "description": "Returns a single test runs",
        "operationId": "test_getTestRun",
        "parameters": [
          {
            "name": "test_run_id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The ID of the test run",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestRun"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "delete": {
        "description": "Logically deletes a test run",
        "operationId": "test_archiveTestRun",
        "parameters": [
          {
            "name": "test_run_id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The ID of the test run",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestRun"
            }
          },
          "404": {
            "description": "Test run with the given ID was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test_runs": {
      "get": {
        "description": "Returns a list of test runs",
        "operationId": "test_getTestRuns",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TestRun"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "post": {
        "description": "Creates a new test run",
        "operationId": "test_createTestRun",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "OK",
            "headers": {
              "Location": {
                "description": "Relative URL that points to the test run",
                "type": "string"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test/export/testRuns": {
      "get": {
        "description": "Lists test run data",
        "operationId": "test_gdprExportTestRun",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestGDPRTestRun"
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test/export/pipelineTests": {
      "get": {
        "description": "Lists pipeline test data",
        "operationId": "test_gdprExportPipelineTest",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestGDPRPipelineTest"
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test/export/hashFiles": {
      "get": {
        "description": "Lists hash file data",
        "operationId": "test_gdprExportHashFile",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestGDPRHashFile"
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test/export/fileSetFiles": {
      "get": {
        "description": "Lists file set file data",
        "operationId": "test_gdprExportFileSetFile",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestGDPRFileSetFile"
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/test/export": {
      "get": {
        "description": "Lists all the endpoints available for Test app data",
        "operationId": "test_gdprExportApp",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestGDPRResourceList"
            }
          }
        },
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/teams": {
      "get": {
        "description": "Returns the details of all teams that have access to the app.",
        "parameters": [
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/owner_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TeamAppResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_getTeams",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/symbols/{symbol_id}/status": {
      "get": {
        "description": "Returns a particular symbol by id (uuid) for the provided application",
        "operationId": "symbols_getStatus",
        "parameters": [
          {
            "$ref": "#/parameters/path_symbol_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SymbolStatusResponse"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/symbols/{symbol_id}/location": {
      "get": {
        "description": "Gets the URL to download the symbol",
        "operationId": "symbols_getLocation",
        "parameters": [
          {
            "$ref": "#/parameters/path_symbol_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SymbolLocation"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/symbols/{symbol_id}/ignore": {
      "post": {
        "description": "Marks a symbol by id (uuid) as ignored",
        "operationId": "symbols_ignore",
        "parameters": [
          {
            "$ref": "#/parameters/path_symbol_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Symbol"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/symbols/{symbol_id}": {
      "get": {
        "description": "Returns a particular symbol by id (uuid) for the provided application",
        "operationId": "symbols_get",
        "parameters": [
          {
            "$ref": "#/parameters/path_symbol_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Symbol"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/symbols": {
      "get": {
        "description": "Returns the list of all symbols for the provided application",
        "operationId": "symbols_list",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Symbols"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}/location": {
      "get": {
        "description": "Gets the URL to download the symbol upload",
        "operationId": "symbolUploads_getLocation",
        "parameters": [
          {
            "$ref": "#/parameters/path_symbol_upload_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SymbolUploadLocation"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}": {
      "get": {
        "description": "Gets a symbol upload by id for the specified application",
        "operationId": "symbolUploads_get",
        "parameters": [
          {
            "$ref": "#/parameters/path_symbol_upload_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SymbolUpload"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      },
      "patch": {
        "description": "Commits or aborts the symbol upload process for a new set of symbols for the specified application",
        "operationId": "symbolUploads_complete",
        "parameters": [
          {
            "$ref": "#/parameters/path_symbol_upload_id"
          },
          {
            "name": "body",
            "in": "body",
            "description": "The symbol information",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SymbolUploadEndRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SymbolUpload"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      },
      "delete": {
        "description": "Deletes a symbol upload by id for the specified application",
        "operationId": "symbolUploads_delete",
        "parameters": [
          {
            "$ref": "#/parameters/path_symbol_upload_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SymbolUpload"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "404": {
            "description": "Not found",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/symbol_uploads": {
      "get": {
        "description": "Gets a list of all uploads for the specified application",
        "operationId": "symbolUploads_list",
        "parameters": [
          {
            "name": "top",
            "in": "query",
            "description": "The maximum number of results to return.",
            "required": false,
            "default": 30,
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Filter results by the current status of a symbol upload: * all: all states in the symbol upload process. Includes created, aborted, committed, processing, indexed and failed states * uploaded: all states after package is uploaded. Includes committed, processing, indexed and failed states * processed: symbol upload processing is completed. Includes indexed and failed states.\n",
            "type": "string",
            "enum": [
              "all",
              "uploaded",
              "processed"
            ]
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SymbolUploads"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      },
      "post": {
        "description": "Begins the symbol upload process for a new set of symbols for the specified application",
        "operationId": "symbolUploads_create",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "description": "The symbol information",
            "required": true,
            "schema": {
              "$ref": "#/definitions/SymbolUploadBeginRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SymbolUploadBeginResponse"
            }
          },
          "400": {
            "description": "Bad request",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "403": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          },
          "500": {
            "description": "Internal error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/subscriptions": {
      "get": {
        "description": "Get information about the currently active subscriptions, if any",
        "operationId": "test_getSubscriptions",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Subscription"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "post": {
        "description": "Accept a free trial subscription",
        "operationId": "test_createSubscription",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/Subscription"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/store_service_status": {
      "get": {
        "description": "Application specific store service status",
        "operationId": "storeNotifications_getNotificationByAppId",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success. Availability for store service status is stored in response schema.",
            "schema": {
              "$ref": "#/definitions/StoreNotification"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/source_hosts/{source_host}/repositories": {
      "get": {
        "description": "Gets the repositories available from the source code host",
        "parameters": [
          {
            "name": "source_host",
            "type": "string",
            "in": "path",
            "description": "The source host",
            "required": true,
            "enum": [
              "github",
              "bitbucket",
              "vsts"
            ]
          },
          {
            "name": "vstsAccountName",
            "type": "string",
            "in": "query",
            "description": "Filter repositories only for specified account and project, \"vstsProjectId\" is required",
            "required": false
          },
          {
            "name": "vstsProjectId",
            "type": "string",
            "in": "query",
            "description": "Filter repositories only for specified account and project, \"vstsAccountName\" is required",
            "required": false
          },
          {
            "$ref": "#/parameters/form"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SourceRepositories"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "repositories_list",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/repo_config": {
      "get": {
        "description": "Returns the repository build configuration status of the app",
        "parameters": [
          {
            "name": "includeInactive",
            "type": "boolean",
            "in": "query",
            "description": "Include inactive configurations if none are active",
            "required": false
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of repository configurations",
            "schema": {
              "$ref": "#/definitions/RepoConfigs"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "repositoryConfigurations_list",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      },
      "post": {
        "description": "Configures the repository for build",
        "parameters": [
          {
            "name": "repo",
            "in": "body",
            "description": "The repository information",
            "required": true,
            "schema": {
              "$ref": "#/definitions/RepoInfo"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SuccessResponse"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "repositoryConfigurations_createOrUpdate",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      },
      "delete": {
        "description": "Removes the configuration for the respository",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SuccessResponse"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "repositoryConfigurations_delete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/update_devices/{resign_id}": {
      "get": {
        "description": "Returns the resign status to the caller",
        "operationId": "devices_getReleaseUpdateDevicesStatus",
        "parameters": [
          {
            "name": "release_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the release.",
            "required": true
          },
          {
            "name": "resign_id",
            "type": "string",
            "description": "The ID of the resign operation.",
            "in": "path",
            "required": true
          },
          {
            "name": "include_provisioning_profile",
            "type": "boolean",
            "description": "A boolean value that indicates if the provisioning profile should be return in addition to the status. When set to true, the provisioning profile will be returned only when status is 'complete' or 'preparing_for_testers'.",
            "in": "query"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ResignStatus"
            }
          },
          "400": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "<b>not_found</b>: A distribution group can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/testers/{tester_id}": {
      "put": {
        "operationId": "releases_putDistributionTester",
        "description": "Update details about the specified tester associated with the release",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "tester_id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The id of the tester",
            "required": true
          },
          {
            "name": "destination_tester_update_details",
            "in": "body",
            "schema": {
              "type": "object",
              "required": [
                "mandatory_update"
              ],
              "properties": {
                "mandatory_update": {
                  "type": "boolean",
                  "description": "Whether a release is mandatory for the given destination"
                }
              }
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "A destination can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "delete": {
        "operationId": "releases_deleteDistributionTester",
        "description": "Delete the given tester from the release",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "tester_id",
            "type": "string",
            "in": "path",
            "description": "The id of the tester",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "Tester can't be found\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/testers": {
      "post": {
        "operationId": "releases_addTesters",
        "description": "Distributes a release to a user",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "description": "The release information.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ReleaseTesterDestinationRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/ReleaseDestinationResponse"
            }
          },
          "400": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "Release not found",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/stores/{store_id}": {
      "delete": {
        "operationId": "releases_deleteDistributionStore",
        "description": "Delete the given distribution store from the release",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "store_id",
            "type": "string",
            "in": "path",
            "description": "The id of the distribution store",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "Distribution store destination can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/stores": {
      "post": {
        "operationId": "releases_addStore",
        "description": "Distributes a release to a store",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "description": "The release information.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ReleaseStoreDestinationRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/ReleaseStoreDestinationResponse"
            }
          },
          "400": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "Release not found",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/provisioning_profile": {
      "get": {
        "description": "Return information about the provisioning profile. Only available for iOS.",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The release_id",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ProvisioningProfileResponse"
            }
          },
          "400": {
            "description": "The app's OS is not iOS.",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "operationId": "provisioning_profile",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/groups/{group_id}": {
      "put": {
        "operationId": "releases_putDistributionGroup",
        "description": "Update details about the specified distribution group associated with the release",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "group_id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The id of the releases destination",
            "required": true
          },
          {
            "name": "destination_group_update_details",
            "in": "body",
            "schema": {
              "type": "object",
              "required": [
                "mandatory_update"
              ],
              "properties": {
                "mandatory_update": {
                  "type": "boolean",
                  "description": "Whether a release is mandatory for the given destination"
                }
              }
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "A destination can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "delete": {
        "operationId": "releases_deleteDistributionGroup",
        "description": "Delete the given distribution group from the release",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "group_id",
            "type": "string",
            "in": "path",
            "description": "The id of the distribution group",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "Distribution group destination can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/groups": {
      "post": {
        "operationId": "releases_addDistributionGroup",
        "description": "Distributes a release to a group",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "description": "The release information.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ReleaseDestinationRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/ReleaseDestinationResponse"
            }
          },
          "400": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "Release not found",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/{release_id}": {
      "get": {
        "description": "Get a release with id `release_id`. If `release_id` is `latest`, return the latest release that was distributed to the current user (from all the distribution groups).",
        "operationId": "releases_getLatestByUser",
        "parameters": [
          {
            "name": "release_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the release, or `latest` to get the latest release from all the distribution groups assigned to the current user.",
            "required": true
          },
          {
            "name": "udid",
            "type": "string",
            "in": "query",
            "description": "when supplied, this call will also check if the given UDID is provisioned. Will be ignored for non-iOS platforms. The value will be returned in the property is_udid_provisioned.",
            "required": false
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ReleaseDetailsResponse"
            }
          },
          "400": {
            "description": "`release_id` is not an integer or the string `latest`.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "Error codes:\n- `not_found` - A release or an app can't be found.\n- `no_releases_for_user` - No releases available for that user (will only be returned when `release_id` is `latest`)\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "put": {
        "operationId": "releases_updateDetails",
        "description": "Update details of a release.",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "description": "The release information.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ReleaseDetailsUpdateRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ReleaseUpdateResponse"
            }
          },
          "400": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/ReleaseUpdateError"
            }
          },
          "404": {
            "description": "Release not found",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "patch": {
        "operationId": "releases_update",
        "description": "Updates a release.",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "description": "The release information.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ReleaseUpdateRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ReleaseDetailsUpdateResponse"
            }
          },
          "400": {
            "description": "Failure",
            "schema": {
              "$ref": "#/definitions/ReleaseUpdateError"
            }
          },
          "404": {
            "description": "Release not found",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "delete": {
        "operationId": "releases_delete",
        "description": "Deletes a release.",
        "parameters": [
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID of the release",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "An app or a release couldn't be found\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "500": {
            "description": "An internal error. if delete has partially failed **partially_deleted** error_code will be returned.\n- `partially_deleted`: Release was removed from all distribution groups, but couldn't be deleted from App Center.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases/filter_by_tester": {
      "get": {
        "deprecated": true,
        "operationId": "releases_availableToTester",
        "description": "Return detailed information about releases avaiable to a tester.",
        "parameters": [
          {
            "name": "published_only",
            "type": "boolean",
            "in": "query",
            "description": "when *true*, filters out releases that were uploaded but were never distributed. Releases that under deleted distribution groups will not be filtered out.",
            "required": false
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BasicReleaseDetailsResponse"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/releases": {
      "get": {
        "operationId": "releases_list",
        "description": "Return basic information about releases.",
        "parameters": [
          {
            "name": "published_only",
            "type": "boolean",
            "in": "query",
            "description": "When *true*, filters out releases that were uploaded but were never distributed. Releases that under deleted distribution groups will not be filtered out.",
            "required": false
          },
          {
            "name": "scope",
            "type": "string",
            "in": "query",
            "description": "When the scope is 'tester', only includes releases that have been distributed to groups that the user belongs to.",
            "required": false
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BasicReleaseDetailsResponse"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/release_uploads/{upload_id}": {
      "patch": {
        "description": "Commits or aborts the upload process for a release for the specified application",
        "parameters": [
          {
            "name": "upload_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the upload",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "description": "The release information",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ReleaseUploadEndRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ReleaseUploadEndResponse"
            }
          },
          "400": {
            "description": "Unknown upload_id or status was committed but the upload hasn't finished."
          }
        },
        "operationId": "releaseUploads_complete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/release_uploads": {
      "post": {
        "description": "Begins the upload process for a new release for the specified application.",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "description": "The release information",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ReleaseUploadBeginRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ReleaseUploadBeginResponse"
            }
          }
        },
        "operationId": "releaseUploads_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/recent_releases": {
      "get": {
        "description": "Get the latest release from every distribution group associated with an application.",
        "operationId": "releases_listLatest",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/BasicReleaseDetailsResponse"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/push/notifications_config": {
      "head": {
        "operationId": "Push_ConfigExists",
        "description": "Returns whether a push configuration exists for the selected app.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Push config exists."
          },
          "404": {
            "description": "Push config does not exist."
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      },
      "get": {
        "operationId": "Push_GetConfig",
        "description": "Get the push configuration for the selected app.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Get push configuration.",
            "schema": {
              "$ref": "#/definitions/NotificationConfigResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      },
      "put": {
        "operationId": "Push_SetConfig",
        "description": "Set the push configuration for the selected app.",
        "parameters": [
          {
            "$ref": "#/parameters/NotificationConfigParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Configuration was successfully set.",
            "schema": {
              "$ref": "#/definitions/NotificationConfigResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      },
      "delete": {
        "operationId": "Push_DeleteConfig",
        "description": "Delete the push configuration for the selected app.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Configuration was successfully deleted."
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/push/notifications/{notification_id}": {
      "get": {
        "operationId": "Push_Get",
        "description": "Get details about a specific notification.",
        "parameters": [
          {
            "$ref": "#/parameters/NotificationIdParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Notification details",
            "schema": {
              "$ref": "#/definitions/NotificationDetailsResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/push/notifications": {
      "get": {
        "operationId": "Push_List",
        "description": "Get a list of notifications from the service.",
        "parameters": [
          {
            "$ref": "#/parameters/TopParameter"
          },
          {
            "$ref": "#/parameters/SkipTokenParameter"
          },
          {
            "$ref": "#/parameters/OrderByParameter"
          },
          {
            "$ref": "#/parameters/InlineCountParameter"
          },
          {
            "$ref": "#/parameters/IncludeArchivedParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of notifications",
            "schema": {
              "$ref": "#/definitions/NotificationsListResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      },
      "post": {
        "operationId": "Push_Send",
        "description": "Send a notification to one or more devices.",
        "parameters": [
          {
            "$ref": "#/parameters/NotificationParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "202": {
            "description": "Notification sent request successfully received.",
            "schema": {
              "$ref": "#/definitions/NotificationSendSucceededResult"
            },
            "headers": {
              "Location": {
                "type": "string",
                "description": "Link to get details about the notification."
              }
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      },
      "delete": {
        "operationId": "Push_Delete",
        "description": "Delete a notification.",
        "parameters": [
          {
            "$ref": "#/parameters/NotificationDeleteParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Notifications were successfully deleted."
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/push/devices/{install_id}": {
      "delete": {
        "operationId": "Push_DeleteInstallId",
        "description": "Delete a device with the selected installId.",
        "parameters": [
          {
            "$ref": "#/parameters/DeviceInstallIdParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "delete operation succeeded"
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/push/device_exports/{export_id}": {
      "get": {
        "operationId": "Push_ExportDevicesStatus",
        "description": "Get the status of an export operation.",
        "parameters": [
          {
            "$ref": "#/parameters/ExportIdParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Get export operation status.",
            "schema": {
              "$ref": "#/definitions/ExportStatusResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/push/device_exports": {
      "post": {
        "operationId": "Push_ExportDevices",
        "description": "Exports information for all devices using Push to Azure Blob Storage",
        "parameters": [
          {
            "$ref": "#/parameters/ExportConfigParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "202": {
            "description": "Export operation successfully started",
            "schema": {
              "$ref": "#/definitions/ExportStartedResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "push"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/owner/device_sets/{id}": {
      "get": {
        "description": "Gets a device set belonging to the owner",
        "operationId": "test_getDeviceSetOfOwner",
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The UUID of the device set",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DeviceSet"
            }
          },
          "404": {
            "description": "Device set with the given ID was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "put": {
        "description": "Updates a device set belonging to the owner",
        "operationId": "test_updateDeviceSetOfOwner",
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The UUID of the device set",
            "required": true
          },
          {
            "name": "deviceSet",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/DeviceSetUpdate"
            },
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DeviceSet"
            }
          },
          "400": {
            "description": "Invalid list of device IDs or conflicting name",
            "schema": {
              "$ref": "#/definitions/TestCloudErrorDetails"
            }
          },
          "404": {
            "description": "Device set with the given ID was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "delete": {
        "description": "Deletes a device set belonging to the owner",
        "operationId": "test_deleteDeviceSetOfOwner",
        "parameters": [
          {
            "name": "id",
            "type": "string",
            "format": "uuid",
            "in": "path",
            "description": "The UUID of the device set",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Device set with the given ID was not found"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/owner/device_sets": {
      "get": {
        "description": "Lists device sets belonging to the owner",
        "operationId": "test_listDeviceSetsOfOwner",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DeviceSet"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      },
      "post": {
        "description": "Creates a device set belonging to the owner",
        "operationId": "test_createDeviceSetOfOwner",
        "parameters": [
          {
            "name": "deviceSet",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/DeviceSetUpdate"
            },
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DeviceSet"
            }
          },
          "400": {
            "description": "Invalid list of device IDs or conflicting name",
            "schema": {
              "$ref": "#/definitions/TestCloudErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/notifications/emailSettings": {
      "get": {
        "operationId": "notifications_getAppEmailSettings",
        "description": "Get Email notification settings of user for a particular app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AlertUserAppEmailSettingsResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/AlertingError"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "alerting"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/mono_versions": {
      "get": {
        "description": "Gets the Mono versions available to this app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/MonoVersions"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "builds_listMonoVersions",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/invitations/{user_email}": {
      "post": {
        "deprecated": true,
        "description": "Invites a new or existing user to an app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "name": "user_email",
            "type": "string",
            "in": "path",
            "description": "The email of the user to invite",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "appInvitations_createByEmail",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "patch": {
        "description": "Update pending invitation permission",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "name": "user_email",
            "type": "string",
            "in": "path",
            "description": "The email of the user to invite",
            "required": true
          },
          {
            "name": "user_invitation_permissions_data",
            "in": "body",
            "description": "The value to update the user permission in the invite.",
            "schema": {
              "$ref": "#/definitions/UserInvitationPermissionsUpdateRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "appInvitations_updatePermissions",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Removes a user's invitation to an app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "name": "user_email",
            "type": "string",
            "in": "path",
            "description": "The email of the user to invite",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "appInvitations_delete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/invitations": {
      "post": {
        "description": "Invites a new or existing user to an app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "name": "user_email",
            "in": "body",
            "description": "The email of the user to invite",
            "schema": {
              "$ref": "#/definitions/UserEmailRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "appInvitations_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "get": {
        "description": "Gets the pending invitations for the app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppInvitationDetailResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "appInvitations_list",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/hockeyapp_crash_forwarding": {
      "get": {
        "description": "Gets the state of HockeyApp Crash forwarding for SxS apps",
        "deprecated": true,
        "summary": "Gets the state of HockeyApp Crash forwarding for SxS apps",
        "operationId": "crashes_getHockeyAppCrashForwardingStatus",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/HockeyAppCrashForwardingInfo"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      },
      "patch": {
        "description": "Enable HockeyApp crash forwarding for SxS apps",
        "deprecated": true,
        "summary": "Enable HockeyApp crash forwarding for SxS apps",
        "operationId": "crashes_updateHockeyAppCrashForwarding",
        "parameters": [
          {
            "name": "body",
            "description": "Enable Forwarding",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/HockeyAppCrashForwardingChange"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/HockeyAppCrashForwardingInfo"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/file_asset": {
      "post": {
        "description": "Create a new asset to upload a file",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/FileAsset"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "fileAssets_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/export_configurations/{export_configuration_id}/enable": {
      "post": {
        "operationId": "ExportConfigurations_Enable",
        "description": "Enable export configuration.",
        "parameters": [
          {
            "$ref": "#/parameters/ExportConfigurationIdParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Export configuration was successfully enabled."
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "export"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/export_configurations/{export_configuration_id}/disable": {
      "post": {
        "operationId": "ExportConfigurations_Disable",
        "description": "Disable export configuration.",
        "parameters": [
          {
            "$ref": "#/parameters/ExportConfigurationIdParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Export configuration was successfully disabled."
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "export"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/export_configurations/{export_configuration_id}": {
      "get": {
        "operationId": "ExportConfigurations_Get",
        "description": "Get export configuration.",
        "parameters": [
          {
            "$ref": "#/parameters/ExportConfigurationIdParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Get export configuration.",
            "schema": {
              "$ref": "#/definitions/ExportConfigurationResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "export"
        ]
      },
      "patch": {
        "operationId": "ExportConfigurations_PartialUpdate",
        "description": "Partially update export configuration.",
        "parameters": [
          {
            "$ref": "#/parameters/ExportConfigurationIdParameter"
          },
          {
            "$ref": "#/parameters/ExportConfigurationParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Export configuration updated successfully.",
            "schema": {
              "$ref": "#/definitions/ExportConfigurationResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "export"
        ]
      },
      "delete": {
        "operationId": "ExportConfigurations_Delete",
        "description": "Delete export configuration.",
        "parameters": [
          {
            "$ref": "#/parameters/ExportConfigurationIdParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Export configuration was successfully deleted."
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "export"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/export_configurations": {
      "get": {
        "operationId": "ExportConfigurations_List",
        "description": "List export configurations.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List export configurations.",
            "schema": {
              "$ref": "#/definitions/ExportConfigurationListResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "export"
        ]
      },
      "post": {
        "operationId": "ExportConfigurations_Create",
        "description": "Create new export configuration",
        "parameters": [
          {
            "$ref": "#/parameters/ExportConfigurationParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "202": {
            "description": "Create export configuration request successfully received.",
            "schema": {
              "$ref": "#/definitions/ExportConfigurationResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "export"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/{errorId}/sessionLogs": {
      "get": {
        "operationId": "Errors_ListSessionLogs",
        "description": "Get session logs by error ID",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorParameter"
          },
          {
            "$ref": "#/parameters/ErrorDateParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Session logs of specific error",
            "schema": {
              "$ref": "#/definitions/GenericLogContainer_Diagnostics"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/{errorId}/attachments/{attachmentId}/text": {
      "get": {
        "operationId": "Errors_ErrorAttachmentText",
        "description": "Error attachment text.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorParameter"
          },
          {
            "$ref": "#/parameters/ErrorAttachmentParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Error attachment text.",
            "schema": {
              "$ref": "#/definitions/ErrorAttachmentText"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/{errorId}/attachments/{attachmentId}/location": {
      "get": {
        "operationId": "Errors_ErrorAttachmentLocation",
        "description": "Error attachment location.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorParameter"
          },
          {
            "$ref": "#/parameters/ErrorAttachmentParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Error attachment location.",
            "schema": {
              "$ref": "#/definitions/ErrorAttachmentLocation"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/{errorId}/attachments": {
      "get": {
        "operationId": "Errors_ErrorAttachments",
        "description": "List error attachments.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of error attachments.",
            "schema": {
              "$ref": "#/definitions/ErrorAttachments"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/search": {
      "get": {
        "operationId": "Errors_ErrorSearch",
        "description": "Errors list based on search parameters",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorSearchFilterParameter"
          },
          {
            "$ref": "#/parameters/ErrorSearchQueryParameter"
          },
          {
            "$ref": "#/parameters/ErrorSearchOrderParameter"
          },
          {
            "$ref": "#/parameters/ErrorSearchSortParameter"
          },
          {
            "$ref": "#/parameters/ErrorSearchTopParameter"
          },
          {
            "$ref": "#/parameters/ErrorSkipParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of errors",
            "schema": {
              "$ref": "#/definitions/ErrorsSearchResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/retention_settings": {
      "put": {
        "description": "Creates and updates the retention settings in days",
        "summary": "Creates and updates the retention settings in days",
        "operationId": "errors_putRetentionSettings",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorRetentionInDaysParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ErrorRetentionSettings"
            }
          },
          "default": {
            "description": "Error code with reason.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      },
      "get": {
        "description": "gets the retention settings in days",
        "summary": "gets the retention settings in days",
        "operationId": "errors_getRetentionSettings",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ErrorRetentionSettings"
            }
          },
          "default": {
            "description": "Error code with reason.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorfreeDevicePercentages": {
      "get": {
        "operationId": "Errors_ErrorFreeDevicePercentages",
        "description": "Percentage of error-free devices by day in the time range based on the selected versions. If SingleErrorTypeParameter is not provided, defaults to handlederror. API will return -1 if crash devices is greater than active devices",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorStartParameter"
          },
          {
            "$ref": "#/parameters/ErrorEndParameter"
          },
          {
            "$ref": "#/parameters/ErrorVersionsParameter"
          },
          {
            "$ref": "#/parameters/SingleErrorTypeParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Percentage of error-free devices by day in the time range and overall percentage of the entire time range.",
            "schema": {
              "$ref": "#/definitions/ErrorFreeDevicePercentages"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/stacktrace": {
      "get": {
        "operationId": "Errors_GroupErrorStackTrace",
        "description": "Gets the stack trace for the error group.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Gets the stack trace for the error group.",
            "schema": {
              "$ref": "#/definitions/DiagnosticsStackTrace"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/operatingSystems": {
      "get": {
        "operationId": "Errors_GroupOperatingSystemCounts",
        "description": "Top OSes of the selected error group.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorTopParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Top OSes with percentage in descending order",
            "schema": {
              "$ref": "#/definitions/ErrorGroupOperatingSystems"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/models": {
      "get": {
        "operationId": "Errors_GroupModelCounts",
        "description": "Top models of the selected error group.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorTopParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Top Models with percentage in descending order",
            "schema": {
              "$ref": "#/definitions/ErrorGroupModels"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors/{errorId}/stacktrace": {
      "get": {
        "operationId": "Errors_ErrorStackTrace",
        "description": "Error Stacktrace details.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Error stacktrace details.",
            "schema": {
              "$ref": "#/definitions/DiagnosticsStackTrace"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors/{errorId}/location": {
      "get": {
        "operationId": "Errors_ErrorLocation",
        "description": "Error location.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Error location.",
            "schema": {
              "$ref": "#/definitions/ErrorLocation"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors/{errorId}/download": {
      "get": {
        "operationId": "Errors_ErrorDownload",
        "description": "Download details for a specific error.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorParameter"
          },
          {
            "$ref": "#/parameters/FormatParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Error details.",
            "schema": {
              "$ref": "#/definitions/ErrorDownload"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors/{errorId}": {
      "get": {
        "operationId": "Errors_GetErrorDetails",
        "description": "Error details.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Error details.",
            "schema": {
              "$ref": "#/definitions/HandledErrorDetails"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      },
      "delete": {
        "operationId": "Errors_DeleteError",
        "description": "Delete a specific error and related attachments and blobs for an app. Searchable data will not be deleted immediately and may take up to 30 days.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/ErrorDeleteCounter"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors/latest": {
      "get": {
        "operationId": "Errors_LatestErrorDetails",
        "description": "Latest error details.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Latest error details.",
            "schema": {
              "$ref": "#/definitions/HandledErrorDetails"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errors": {
      "get": {
        "operationId": "Errors_ListForGroup",
        "description": "Get all errors for group",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorStartParameter"
          },
          {
            "$ref": "#/parameters/ErrorEndParameter"
          },
          {
            "$ref": "#/parameters/ModelParameterOptional"
          },
          {
            "$ref": "#/parameters/OsParameterOptional"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Get all errors for group",
            "schema": {
              "$ref": "#/definitions/HandledErrors"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errorfreeDevicePercentages": {
      "get": {
        "operationId": "Errors_GroupErrorFreeDevicePercentages",
        "description": "Percentage of error-free devices by day in the time range. Api will return -1 if crash devices is greater than active devices",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorStartParameter"
          },
          {
            "$ref": "#/parameters/ErrorEndParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Percentage of error-free devices by day in the time range and overall percentage of the time range.",
            "schema": {
              "$ref": "#/definitions/ErrorFreeDevicePercentages"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}/errorCountsPerDay": {
      "get": {
        "operationId": "Errors_GroupCountsPerDay",
        "description": "Count of errors by day in the time range of the selected error group with selected version",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorVersionParameterOptional"
          },
          {
            "$ref": "#/parameters/ErrorStartParameter"
          },
          {
            "$ref": "#/parameters/ErrorEndParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of errors by day in the time range and total errors over the time range.",
            "schema": {
              "$ref": "#/definitions/ErrorCounts"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/{errorGroupId}": {
      "get": {
        "operationId": "Errors_GroupDetails",
        "description": "Error group details",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Error group details",
            "schema": {
              "$ref": "#/definitions/ErrorGroup"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      },
      "patch": {
        "operationId": "Errors_UpdateState",
        "description": "Update error group state",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorGroupParameter"
          },
          {
            "$ref": "#/parameters/ErrorGroupStateParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Error group details",
            "schema": {
              "$ref": "#/definitions/ErrorGroup"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups/search": {
      "get": {
        "operationId": "Errors_ErrorGroupsSearch",
        "description": "Error groups list based on search parameters",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorSearchFilterParameter"
          },
          {
            "$ref": "#/parameters/ErrorSearchQueryParameter"
          },
          {
            "$ref": "#/parameters/ErrorSearchOrderParameter"
          },
          {
            "$ref": "#/parameters/ErrorGroupSearchSortParameter"
          },
          {
            "$ref": "#/parameters/ErrorSearchTopParameter"
          },
          {
            "$ref": "#/parameters/ErrorSkipParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of error groups",
            "schema": {
              "$ref": "#/definitions/ErrorGroupsSearchResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorGroups": {
      "get": {
        "operationId": "Errors_GroupList",
        "description": "List of error groups",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorVersionParameterOptional"
          },
          {
            "$ref": "#/parameters/GroupStateParameter"
          },
          {
            "$ref": "#/parameters/ErrorStartParameter"
          },
          {
            "$ref": "#/parameters/ErrorEndParameter"
          },
          {
            "$ref": "#/parameters/ErrorOrderByParameter"
          },
          {
            "$ref": "#/parameters/ErrorTopParameter"
          },
          {
            "$ref": "#/parameters/ErrorTypeParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of error groups",
            "schema": {
              "$ref": "#/definitions/ErrorGroups"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/errorCountsPerDay": {
      "get": {
        "operationId": "Errors_CountsPerDay",
        "description": "Count of crashes or errors by day in the time range based the selected versions. If SingleErrorTypeParameter is not provided, defaults to handlederror.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorVersionParameterOptional"
          },
          {
            "$ref": "#/parameters/ErrorStartParameter"
          },
          {
            "$ref": "#/parameters/ErrorEndParameter"
          },
          {
            "$ref": "#/parameters/SingleErrorTypeParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of crashes or errors by day in the time range, and total over the entire time range.",
            "schema": {
              "$ref": "#/definitions/ErrorCounts"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/errors/available_versions": {
      "get": {
        "operationId": "Errors_AvailableVersions",
        "description": "Get all available versions in the time range.",
        "parameters": [
          {
            "$ref": "#/parameters/ErrorStartParameter"
          },
          {
            "$ref": "#/parameters/ErrorEndParameter"
          },
          {
            "$ref": "#/parameters/ErrorTopParameter"
          },
          {
            "$ref": "#/parameters/ErrorSkipParameter"
          },
          {
            "$ref": "#/parameters/ErrorFilterParameter"
          },
          {
            "$ref": "#/parameters/ErrorInlineCountParameter"
          },
          {
            "$ref": "#/parameters/ErrorTypeParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of available versions in the time range.",
            "schema": {
              "$ref": "#/definitions/AvailableVersions_Diagnostics"
            }
          },
          "default": {
            "description": "Error code with reason.",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "errors"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_stores/{store_name}/releases/{release_id}/realtimestatus": {
      "get": {
        "operationId": "storeReleases_getRealTimeStatusByReleaseId",
        "description": "Return the Real time Status publishing of release from store.",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "name": "release_id",
            "type": "number",
            "in": "path",
            "description": "The id of the release",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ReleaseRealTimeStatusResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_stores/{store_name}/releases/{release_id}/publish_logs": {
      "get": {
        "operationId": "storeReleasePublishLogs_get",
        "description": "Returns publish logs for a particular release published to a particular store",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "name": "release_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the realease",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_stores/{store_name}/releases/{release_id}/publish_error_details": {
      "get": {
        "operationId": "storeReleases_getPublishError",
        "description": "Return the Error Details of release which failed in publishing.",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "name": "release_id",
            "type": "number",
            "in": "path",
            "description": "The id of the release",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ReleasePublishErrorResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_stores/{store_name}/releases/{release_id}": {
      "get": {
        "operationId": "storeReleases_get",
        "description": "Return releases published in a store for releaseId and storeId",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "name": "release_id",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StoresReleaseDetails"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "delete": {
        "operationId": "storeReleases_delete",
        "description": "delete the release with release Id",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "name": "release_id",
            "type": "string",
            "in": "path",
            "description": "The id of the release",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_stores/{store_name}/releases": {
      "get": {
        "operationId": "storeReleases_list",
        "description": "Return all releases published  in a store",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StoresBasicReleaseDetails"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_stores/{store_name}/latest_release": {
      "get": {
        "operationId": "storeReleases_getLatest",
        "description": "Returns the latest release published in a store.",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/StoresReleaseDetails"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_stores/{store_name}": {
      "get": {
        "operationId": "stores_get",
        "description": "Return the store details for specified store name.",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ExternalStoreResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "patch": {
        "operationId": "stores_patch",
        "description": "Update the store.",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "name": "body",
            "in": "body",
            "description": "Store update request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/StorePatchRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "delete": {
        "operationId": "stores_delete",
        "description": "delete the store based on specific store name.",
        "parameters": [
          {
            "name": "store_name",
            "type": "string",
            "in": "path",
            "description": "The name of the store",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_stores": {
      "post": {
        "description": "Create a new external store for the specified application.",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "description": "The store request",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ExternalStoreRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ExternalStoreResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "operationId": "stores_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "get": {
        "description": "Get all the store details from Storage store table for a particular application.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ExternalStoreResponse"
              }
            }
          }
        },
        "operationId": "stores_list",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_groups/{distribution_group_name}/resend_invite": {
      "post": {
        "description": "Resend distribution group app invite notification to previously invited testers",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "$ref": "#/parameters/members"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_resendInvite",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_groups/{distribution_group_name}/releases/{release_id}": {
      "get": {
        "operationId": "releases_getLatestByDistributionGroup",
        "description": "Return detailed information about a distributed release in a given distribution group.",
        "parameters": [
          {
            "name": "owner_name",
            "type": "string",
            "in": "path",
            "description": "The name of the app owner",
            "required": true
          },
          {
            "name": "app_name",
            "type": "string",
            "in": "path",
            "description": "The name of the app",
            "required": true
          },
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group.",
            "required": true
          },
          {
            "name": "release_id",
            "type": "string",
            "in": "path",
            "description": "Only supports the constant `latest`, specific IDs are not supported. `latest` will return the latest release in the distribution group.",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ReleaseDetailsResponse"
            }
          },
          "404": {
            "description": "Error Codes:\n- `not_found` - Distribution group or the app doesn't exist\n- `no_releases_for_app` - App has no releases.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "501": {
            "description": "Requesting a specific release_id is not supported.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "delete": {
        "operationId": "releases_deleteWithDistributionGroupId",
        "description": "Deletes a release with id 'release_id' in a given distribution group.",
        "parameters": [
          {
            "name": "owner_name",
            "type": "string",
            "in": "path",
            "description": "The name of the app owner",
            "required": true
          },
          {
            "name": "app_name",
            "type": "string",
            "in": "path",
            "description": "The name of the app",
            "required": true
          },
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group.",
            "required": true
          },
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The ID identifying the unique release.",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "403": {
            "description": "error code - forbidden - A release from a legacy HockeyApp distribution group can’t be deleted with App Center API. To delete a legacy HockeyApp release, please use the HockeyApp API. https://support.hockeyapp.net/kb/api/api-versions#delete-single-version",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "Error codes:\n- `distribution_group_not_found` - Distribution group or the app doesn't exist.\n- `not_found` - release isn't found.\n"
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_groups/{distribution_group_name}/releases": {
      "get": {
        "operationId": "releases_listByDistributionGroup",
        "description": "Return basic information about distributed releases in a given distribution group.",
        "parameters": [
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group.",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DistributionGroupReleasesResponse"
            }
          },
          "404": {
            "description": "A distribution group can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_groups/{distribution_group_name}/members/bulk_delete": {
      "post": {
        "description": "Remove the users from the distribution group",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "$ref": "#/parameters/members"
          }
        ],
        "responses": {
          "200": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupUserDeleteResponse"
              }
            },
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_removeUser",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_groups/{distribution_group_name}/members": {
      "get": {
        "description": "Returns a list of member details in the distribution group specified",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "$ref": "#/parameters/exclude_pending_invitations"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupUserGetResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_listUsers",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "post": {
        "description": "Adds the members to the specified distribution group",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "$ref": "#/parameters/members"
          }
        ],
        "responses": {
          "200": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupUserPostResponse"
              }
            },
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_addUser",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_groups/{distribution_group_name}/devices/download_devices_list": {
      "get": {
        "operationId": "devices_listCsvFormat",
        "description": "Returns all devices associated with the given distribution group.",
        "parameters": [
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group.",
            "required": true
          },
          {
            "name": "unprovisioned_only",
            "type": "boolean",
            "in": "query",
            "description": "when true, filters out provisioned devices",
            "default": false
          },
          {
            "name": "udids",
            "type": "array",
            "in": "query",
            "description": "multiple UDIDs which should be part of the resulting CSV.",
            "items": {
              "type": "string"
            },
            "collectionFormat": "csv"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "file"
            }
          },
          "400": {
            "description": "<b>bad_request</b>: Devices information can only be requested for iOS apps.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "<b>not_found</b>: A distribution group can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "500": {
            "description": "An internal error.",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_groups/{distribution_group_name}/devices": {
      "get": {
        "operationId": "devices_list",
        "description": "Returns all devices associated with the given distribution group",
        "parameters": [
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group.",
            "required": true
          },
          {
            "name": "release_id",
            "type": "number",
            "in": "query",
            "description": "when provided, gets the provisioning state of the devices owned by users of this distribution group when compared to the provided release."
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DeviceInfoResponse"
              }
            }
          },
          "400": {
            "description": "<b>bad_request</b>: Devices information can only be requested for iOS apps.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "<b>not_found</b>: A distribution group can't be found.\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_groups/{distribution_group_name}": {
      "get": {
        "description": "Returns a single distribution group for a given distribution group name",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DistributionGroupResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_get",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "patch": {
        "description": "Updates the attributes of distribution group",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          },
          {
            "$ref": "#/parameters/distribution_group_for_patch"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DistributionGroupResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_update",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Deletes a distribution group",
        "parameters": [
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/distribution_group_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_delete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/distribution_groups": {
      "get": {
        "description": "Returns a list of distribution groups in the app specified",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_list",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "post": {
        "description": "Creates a new distribution group and returns it to the caller",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/distribution_group"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DistributionGroupResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "distributionGroups_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/diagnostics/symbol_groups_info": {
      "get": {
        "description": "Gets application level statistics for all missing symbol groups",
        "summary": "Gets application level statistics for all missing symbol groups",
        "operationId": "missingSymbolGroups_info",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/v2MissingSymbolCrashGroupsInfoResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/v2FailureResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/diagnostics/symbol_groups/{symbol_group_id}": {
      "get": {
        "description": "Gets missing symbol crash group by its id",
        "summary": "Gets missing symbol crash group by its id",
        "operationId": "missingSymbolGroups_get",
        "parameters": [
          {
            "$ref": "#/parameters/v2_path_symbol_group_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/v2MissingSymbolCrashGroupsResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/v2FailureResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/diagnostics/symbol_groups": {
      "get": {
        "description": "Gets top N (ordered by crash count) of crash groups by missing symbol",
        "summary": "Gets top N (ordered by crash count) of crash groups by missing symbol",
        "operationId": "missingSymbolGroups_list",
        "parameters": [
          {
            "$ref": "#/parameters/v2_query_top"
          },
          {
            "$ref": "#/parameters/v2_query_filter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/v2MissingSymbolCrashGroupsResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/v2FailureResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/devices/block_logs/{install_id}": {
      "put": {
        "operationId": "Devices_BlockLogs",
        "description": "**Warning, this operation is not reversible.**\n\n A successful call to this API will permanently stop ingesting any logs received via SDK for the given installation ID, and cannot be restored. We advise caution when using this API, it is designed to permanently disable collection from a specific installation of the app on a device, usually following the request from a user.\n",
        "parameters": [
          {
            "$ref": "#/parameters/InstallIdParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Operation successful",
            "schema": {
              "type": "string",
              "format": "string"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/devices/block_logs": {
      "put": {
        "operationId": "App_BlockLogs",
        "description": "**Warning, this operation is not reversible.** \n\nA successful call to this API will permanently stop ingesting any logs received via SDK by app_id, and cannot be restored. We advise caution when using this API, it is designed to permanently disable an app_id.\n",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Operation successful",
            "schema": {
              "type": "string",
              "format": "string"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/device_selection": {
      "post": {
        "description": "Creates a short ID for a list of devices",
        "operationId": "test_createDeviceSelection",
        "parameters": [
          {
            "name": "deviceList",
            "schema": {
              "$ref": "#/definitions/DeviceList"
            },
            "in": "body",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/DeviceSelection"
            }
          },
          "400": {
            "description": "Invalid list of device IDs",
            "schema": {
              "$ref": "#/definitions/TestCloudErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/device_configurations": {
      "get": {
        "description": "Returns a list of available devices",
        "operationId": "test_getDeviceConfigurations",
        "parameters": [
          {
            "name": "app_upload_id",
            "type": "string",
            "format": "uuid",
            "in": "query",
            "description": "The ID of the test run",
            "required": false
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DeviceConfiguration"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/deployments/{deployment_name}/rollback_release": {
      "post": {
        "description": "Rollback the latest or a specific release for an app deployment",
        "operationId": "codePushDeploymentRelease_rollback",
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "name": "releaseLabel",
            "description": "The specific release label that you want to rollback to",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CodePushReleaseLabel"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CodePushRelease"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/deployments/{deployment_name}/releases/{release_label}": {
      "patch": {
        "description": "Modifies a CodePush release metadata under the given Deployment",
        "operationId": "deploymentReleases_update",
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "$ref": "#/parameters/path_release_label"
          },
          {
            "name": "release",
            "description": "Release modification. All fields are optional and only provided fields will get updated.",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CodePushReleaseModification"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CodePushRelease"
            }
          },
          "204": {
            "description": "Nothing to patch"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/deployments/{deployment_name}/releases": {
      "delete": {
        "description": "Clears a Deployment of releases",
        "operationId": "codePushDeploymentReleases_delete",
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      },
      "get": {
        "description": "Gets the history of releases on a Deployment",
        "operationId": "codePushDeploymentReleases_get",
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CodePushRelease"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      },
      "post": {
        "description": "Create a new CodePush release for the specified deployment",
        "operationId": "codePushDeploymentReleases_create",
        "consumes": [
          "multipart/form-data"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "name": "package",
            "in": "formData",
            "description": "The upload zip file",
            "type": "file"
          },
          {
            "name": "targetBinaryVersion",
            "description": "the binary version of the application",
            "in": "formData",
            "required": true,
            "type": "string"
          },
          {
            "name": "deploymentName",
            "in": "formData",
            "description": "This specifies which deployment you want to release the update to. Default is Staging.",
            "required": false,
            "type": "string"
          },
          {
            "name": "description",
            "in": "formData",
            "description": "This provides an optional \"change log\" for the deployment.",
            "required": false,
            "type": "string",
            "maximum": 10000
          },
          {
            "name": "disabled",
            "in": "formData",
            "description": "This specifies whether an update should be downloadable by end users or not.",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "mandatory",
            "in": "formData",
            "description": "This specifies whether the update should be considered mandatory or not (e.g. it includes a critical security fix).",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "noDuplicateReleaseError",
            "in": "formData",
            "description": "This specifies that if the update is identical to the latest release on the deployment, the CLI should generate a warning instead of an error.",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "rollout",
            "in": "formData",
            "description": "This specifies the percentage of users (as an integer between 1 and 100) that should be eligible to receive this update.",
            "required": false,
            "type": "integer"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CodePushRelease"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/deployments/{deployment_name}/promote_release/{promote_deployment_name}": {
      "post": {
        "description": "Promote one release (default latest one) from one deployment to another",
        "operationId": "codePushDeployments_promote",
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "$ref": "#/parameters/path_promote_deployment_name"
          },
          {
            "name": "release",
            "description": "Release to be promoted, only needs to provide optional fields, description, label, disabled, mandatory, rollout, targetBinaryVersion",
            "in": "body",
            "schema": {
              "$ref": "#/definitions/CodePushReleasePromote"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Promote a new release to the target deployment, return this new release.",
            "schema": {
              "$ref": "#/definitions/CodePushRelease"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/deployments/{deployment_name}/metrics": {
      "get": {
        "description": "Gets all releases metrics for specified Deployment",
        "operationId": "codePushDeploymentMetrics_get",
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CodePushReleaseMetric"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/deployments/{deployment_name}": {
      "delete": {
        "description": "Deletes a CodePush Deployment for the given app",
        "operationId": "codePushDeployments_delete",
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      },
      "get": {
        "description": "Gets a CodePush Deployment for the given app",
        "operationId": "codePushDeployments_get",
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Deployment"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      },
      "patch": {
        "description": "Modifies a CodePush Deployment for the given app",
        "operationId": "codePushDeployments_update",
        "parameters": [
          {
            "$ref": "#/parameters/path_deployment_name"
          },
          {
            "name": "deployment",
            "description": "Deployment modification. All fields are optional and only provided fields will get updated.",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DeploymentModification"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/deployments": {
      "get": {
        "description": "Gets a list of CodePush deployments for the given app",
        "operationId": "codePushDeployments_list",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Deployment"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      },
      "post": {
        "description": "Creates a CodePush Deployment for the given app",
        "operationId": "codePushDeployments_create",
        "parameters": [
          {
            "name": "deployment",
            "description": "Deployment to be created",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Deployment"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Deployment"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/data/resource_provisioning": {
      "get": {
        "operationId": "data_getResourceProvisioning",
        "consumes": [],
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "file"
            }
          },
          "404": {
            "description": "Not Found",
            "schema": {
              "$ref": "#/definitions/ProvisionStatusResponse"
            }
          },
          "500": {
            "description": "Server Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "mbaas"
        ]
      },
      "post": {
        "summary": "Creates Cosmos DB or attaches an existing one",
        "operationId": "data_postResourceProvisioning",
        "consumes": [
          "application/json-patch+json",
          "application/json",
          "text/json",
          "application/*+json"
        ],
        "parameters": [
          {
            "name": "AC-Authorization-ARM",
            "in": "header",
            "required": true,
            "type": "string"
          },
          {
            "name": "provisionDatabaseParameters",
            "in": "body",
            "required": false,
            "schema": {
              "$ref": "#/definitions/DataProvisioningParameters"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "202": {
            "description": "Request Accepted",
            "schema": {
              "$ref": "#/definitions/ProvisionStatusResponse"
            }
          },
          "400": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Server Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "mbaas"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/data/database_account_names/{accountName}": {
      "head": {
        "summary": "Checks that the Azure Cosmos DB account name already exists. A valid account name may contain only lowercase letters, numbers, and the '-' character, and must be between 3 and 31 characters.",
        "operationId": "data_checkNameExists",
        "consumes": [],
        "parameters": [
          {
            "name": "AC-Authorization-ARM",
            "in": "header",
            "required": true,
            "type": "string"
          },
          {
            "name": "accountName",
            "in": "path",
            "required": true,
            "type": "string",
            "maxLength": 31,
            "minLength": 3
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OK. The account name is valid but is already in use.",
            "schema": {
              "type": "file"
            }
          },
          "400": {
            "description": "Bad request. Account name in not valid."
          },
          "401": {
            "description": "Unauthorized. Provided ARM Authorization token is invalid or expired."
          },
          "404": {
            "description": "Not Found. The account name is available and valid."
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "mbaas"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crashes_info": {
      "get": {
        "description": "Gets whether the application has any crashes. Available for UWP apps only.",
        "deprecated": true,
        "summary": "Available for UWP apps only.",
        "operationId": "crashes_getAppCrashesInfo",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppCrashesInfo"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crashes/{crash_id}/session_logs": {
      "get": {
        "operationId": "Crashes_ListSessionLogs",
        "description": "Get session logs by crash ID",
        "parameters": [
          {
            "$ref": "#/parameters/AnalyticsCrashIdParameter"
          },
          {
            "$ref": "#/parameters/AnalyticsDateParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Session logs of specific crash",
            "schema": {
              "$ref": "#/definitions/GenericLogContainer"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crashes/{crash_id}/attachments/{attachment_id}/text": {
      "get": {
        "description": "Gets content of the text attachment. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashes_getCrashTextAttachmentContent",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_id"
          },
          {
            "$ref": "#/parameters/path_attachment_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "string"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crashes/{crash_id}/attachments/{attachment_id}/location": {
      "get": {
        "description": "Gets the URI location to download crash attachment. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashes_getCrashAttachmentLocation",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_id"
          },
          {
            "$ref": "#/parameters/path_attachment_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CrashAttachmentLocation"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crashes/{crash_id}/attachments": {
      "get": {
        "description": "Gets all attachments for a specific crash. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashes_listAttachments",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/CrashAttachment"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/stacktrace": {
      "get": {
        "description": "Gets a stacktrace for a specific crash. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashGroups_getStacktrace",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "$ref": "#/parameters/grouping_only"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Stacktrace"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id}/stacktrace": {
      "get": {
        "description": "Gets a stacktrace for a specific crash. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashes_getStacktrace",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "$ref": "#/parameters/path_crash_id"
          },
          {
            "$ref": "#/parameters/grouping_only"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Stacktrace"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id}/raw/location": {
      "get": {
        "description": "Gets the URI location to download json of a specific crash. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashes_getRawCrashLocation",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "$ref": "#/parameters/path_crash_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CrashRawLocation"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id}/native/download": {
      "get": {
        "description": "Gets the native log of a specific crash as a text attachment. Available for UWP apps only.",
        "deprecated": true,
        "summary": "Available for UWP apps only.",
        "operationId": "crashes_getNativeCrashDownload",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "$ref": "#/parameters/path_crash_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/NativeCrashLog"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id}/native": {
      "get": {
        "description": "Gets the native log of a specific crash. Available for UWP apps only.",
        "deprecated": true,
        "summary": "Available for UWP apps only.",
        "operationId": "crashes_getNativeCrash",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "$ref": "#/parameters/path_crash_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/NativeCrashLog"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes/{crash_id}": {
      "get": {
        "description": "Gets a specific crash for an app. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashes_get",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "$ref": "#/parameters/path_crash_id"
          },
          {
            "$ref": "#/parameters/include_report"
          },
          {
            "$ref": "#/parameters/include_log"
          },
          {
            "name": "include_details",
            "in": "query",
            "type": "boolean",
            "default": false,
            "required": false,
            "description": "true if the crash should include in depth crash details"
          },
          {
            "name": "include_stacktrace",
            "in": "query",
            "type": "boolean",
            "default": false,
            "required": false,
            "description": "true if the crash should include the stacktrace information"
          },
          {
            "$ref": "#/parameters/grouping_only"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/Crash"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      },
      "delete": {
        "description": "Delete a specific crash and related attachments and blobs for an app. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashes_delete",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "$ref": "#/parameters/path_crash_id"
          },
          {
            "name": "retention_delete",
            "in": "query",
            "type": "boolean",
            "default": false,
            "required": false,
            "description": "true in that case if the method should skip update counts"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CrashDeleteCounter"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes": {
      "get": {
        "description": "Gets all crashes of a group. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashes_list",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "$ref": "#/parameters/include_report"
          },
          {
            "$ref": "#/parameters/include_log"
          },
          {
            "$ref": "#/parameters/date_from"
          },
          {
            "$ref": "#/parameters/date_to"
          },
          {
            "$ref": "#/parameters/app_version"
          },
          {
            "$ref": "#/parameters/error_type"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/Crash"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}": {
      "get": {
        "description": "Gets a specific group. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashGroups_get",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CrashGroup"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      },
      "patch": {
        "description": "Updates a group. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "operationId": "crashGroups_update",
        "parameters": [
          {
            "$ref": "#/parameters/path_crash_group_id"
          },
          {
            "name": "group",
            "description": "Group change object. All fields are optional and only provided fields will get updated.",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CrashGroupChange"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CrashGroup"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups": {
      "get": {
        "description": "Gets a list of crash groups and whether the list contains all available groups. Available for UWP apps only.",
        "deprecated": true,
        "summary": "Available for UWP apps only.",
        "operationId": "crashGroups_list",
        "parameters": [
          {
            "$ref": "#/parameters/last_occurrence_from"
          },
          {
            "$ref": "#/parameters/last_occurrence_to"
          },
          {
            "$ref": "#/parameters/app_version"
          },
          {
            "$ref": "#/parameters/group_type"
          },
          {
            "$ref": "#/parameters/group_status"
          },
          {
            "$ref": "#/parameters/group_text_search"
          },
          {
            "$ref": "#/parameters/group_orderby"
          },
          {
            "$ref": "#/parameters/continuation_token"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CrashGroupsContainer"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/commits/batch": {
      "get": {
        "description": "Returns commit information for a batch of shas",
        "parameters": [
          {
            "name": "hashes",
            "in": "query",
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A collection of commit SHAs comma-delimited",
            "required": true,
            "collectionFormat": "csv"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/CommitDetailsList"
            }
          }
        },
        "operationId": "commits_listByShaList",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/builds/{build_id}/logs": {
      "get": {
        "description": "Get the build log",
        "parameters": [
          {
            "$ref": "#/parameters/build_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/BuildLog"
            }
          }
        },
        "operationId": "builds_getLog",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/builds/{build_id}/downloads/{download_type}": {
      "get": {
        "description": "Gets the download URI",
        "parameters": [
          {
            "$ref": "#/parameters/build_id"
          },
          {
            "name": "download_type",
            "type": "string",
            "enum": [
              "build",
              "symbols",
              "logs"
            ],
            "in": "path",
            "description": "The download type",
            "required": true
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DownloadContainer"
            }
          }
        },
        "operationId": "builds_getDownloadUri",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/builds/{build_id}/distribute": {
      "post": {
        "description": "Distribute a build",
        "parameters": [
          {
            "$ref": "#/parameters/build_id"
          },
          {
            "name": "distribute_info",
            "in": "body",
            "description": "The distribution details",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DistributionRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/DistributionResponse"
            }
          }
        },
        "operationId": "builds_distribute",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/builds/{build_id}": {
      "get": {
        "description": "Returns the build detail for the given build ID",
        "parameters": [
          {
            "$ref": "#/parameters/build_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Build"
            }
          }
        },
        "operationId": "builds_get",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      },
      "patch": {
        "description": "Cancels a build",
        "parameters": [
          {
            "$ref": "#/parameters/build_id"
          },
          {
            "name": "properties",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/BuildPatch"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Build"
            }
          }
        },
        "operationId": "builds_update",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/build_service_status": {
      "get": {
        "description": "Application specific build service status",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success. Availability for build service status is stored in response schema.",
            "schema": {
              "$ref": "#/definitions/BuildServiceStatus"
            }
          },
          "default": {
            "description": "Bad Request"
          }
        },
        "operationId": "builds_getStatusByAppId",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/bugtracker/crashGroup/{crash_group_id}": {
      "get": {
        "operationId": "bugTracker_getRepoIssueFromCrash",
        "description": "Get project issue related to a crash group",
        "parameters": [
          {
            "$ref": "#/parameters/CrashGroupIdParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/BugTrackerIssueResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/AlertingError"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "alerting"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/bugtracker": {
      "get": {
        "operationId": "bugtracker_getSettings",
        "description": "Get bug tracker settings for a particular app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AlertingBugtracker"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/AlertingError"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "alerting"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/branches/{branch}/toolset_projects": {
      "get": {
        "description": "Returns the projects in the repository for the branch, for all toolsets",
        "parameters": [
          {
            "$ref": "#/parameters/branch"
          },
          {
            "name": "os",
            "type": "string",
            "in": "query",
            "description": "The desired OS for the project scan; normally the same as the app OS",
            "required": true,
            "enum": [
              "iOS",
              "Android",
              "Windows",
              "macOS"
            ]
          },
          {
            "name": "platform",
            "type": "string",
            "in": "query",
            "description": "The desired platform for the project scan",
            "required": true,
            "enum": [
              "Objective-C-Swift",
              "React-Native",
              "Xamarin",
              "Java",
              "UWP"
            ]
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ToolsetProjects"
            }
          }
        },
        "operationId": "builds_listToolsetProjects",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/branches/{branch}/config": {
      "get": {
        "description": "Gets the branch configuration",
        "parameters": [
          {
            "$ref": "#/parameters/branch"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/BranchConfiguration"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "branchConfigurations_get",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      },
      "post": {
        "description": "Configures the branch for build",
        "parameters": [
          {
            "$ref": "#/parameters/branch"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/BranchConfiguration"
            }
          }
        },
        "operationId": "branchConfigurations_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      },
      "put": {
        "description": "Reconfigures the branch for build",
        "parameters": [
          {
            "$ref": "#/parameters/branch"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/BranchConfiguration"
            }
          }
        },
        "operationId": "branchConfigurations_update",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      },
      "delete": {
        "description": "Deletes the branch build configuration",
        "parameters": [
          {
            "$ref": "#/parameters/branch"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/SuccessResponse"
            }
          }
        },
        "operationId": "branchConfigurations_delete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/branches/{branch}/builds": {
      "get": {
        "description": "Returns the list of builds for the branch",
        "parameters": [
          {
            "$ref": "#/parameters/branch"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/Builds"
            }
          }
        },
        "operationId": "builds_listByBranch",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      },
      "post": {
        "description": "Create a build",
        "parameters": [
          {
            "$ref": "#/parameters/branch"
          },
          {
            "name": "params",
            "in": "body",
            "description": "Parameters of the build",
            "required": false,
            "schema": {
              "$ref": "#/definitions/BuildParams"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Created build(s)",
            "schema": {
              "$ref": "#/definitions/Build"
            }
          }
        },
        "operationId": "builds_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/branches": {
      "get": {
        "description": "Returns the list of Git branches for this application",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/BranchStatusCollection"
            }
          },
          "default": {
            "description": "Bad Request",
            "schema": {
              "$ref": "#/definitions/ValidationErrorResponse"
            }
          }
        },
        "operationId": "builds_listBranches",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "build"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/billing/aggregated": {
      "get": {
        "operationId": "billingAggregatedInformation_getByApp",
        "description": "Aggregated Billing Information for owner of a given app.",
        "parameters": [
          {
            "$ref": "#/parameters/ServiceTypeFilterParameter"
          },
          {
            "$ref": "#/parameters/PeriodTypeFilterParameter"
          },
          {
            "$ref": "#/parameters/ShowOriginalPlansFilterParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Aggregated Billing Information for owner of a given app",
            "schema": {
              "$ref": "#/definitions/AggregatedBillingInformation"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/BillingError"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "billing"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/azure_subscriptions/{azure_subscription_id}": {
      "delete": {
        "description": "Delete the azure subscriptions for the app",
        "parameters": [
          {
            "$ref": "#/parameters/azure_subscription_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "azureSubscription_deleteForApp",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/azure_subscriptions": {
      "get": {
        "description": "Returns a list of azure subscriptions for the app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AzureSubscriptionResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "azureSubscription_listForApp",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "post": {
        "description": "Link azure subscription to an app",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "name": "azure_subscription_to_app_data",
            "in": "body",
            "description": "The azure subscription data needed to be link to the app.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AzureSubscriptionAddToAppRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "azureSubscription_linkForApp",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/avatar": {
      "post": {
        "description": "Sets the app avatar",
        "consumes": [
          "multipart/form-data"
        ],
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/app_avatar"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_updateAvatar",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Deletes the uploaded app avatar",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_deleteAvatar",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/auth/users": {
      "get": {
        "summary": "Returns users of a tenant.\nReturns all users if no searchTerm param is specified.",
        "operationId": "identity_getUsers",
        "consumes": [],
        "parameters": [
          {
            "name": "AC-Authorization-Microsoft-Graph",
            "in": "header",
            "description": "MSGraph Auth Token",
            "required": false,
            "type": "string"
          },
          {
            "name": "searchTerm",
            "in": "query",
            "description": "User search term",
            "required": false,
            "type": "string"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "file"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "500": {
            "description": "Server Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "mbaas"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/apple_test_flight_groups": {
      "get": {
        "deprecated": true,
        "operationId": "appleMapping_TestFlightGroups",
        "description": "Fetch all apple test flight groups",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AppleTestFlightGroupsResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/apple_mapping": {
      "get": {
        "description": "Get mapping of apple app to an existing app in apple store.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppleMappingResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "operationId": "appleMapping_get",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "delete": {
        "description": "Delete mapping of apple app to an existing app in apple store.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "operationId": "appleMapping_delete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      },
      "post": {
        "description": "Create a mapping for an existing app in apple store for the specified application.",
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "description": "The apple app mapping object",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AppleMappingRequest"
            }
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppleMappingResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "operationId": "appleMapping_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/versions": {
      "get": {
        "operationId": "Analytics_Versions",
        "description": "Count of active versions in the time range ordered by version.",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/TopParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of active versions in the time range ordered by version.",
            "schema": {
              "$ref": "#/definitions/Versions"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/sessions_per_device": {
      "get": {
        "operationId": "Analytics_PerDeviceCounts",
        "description": "Count of sessions per device in the time range",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/IntervalParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of sessions per device in the time range",
            "schema": {
              "$ref": "#/definitions/SessionsPerDevice"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/session_durations_distribution": {
      "get": {
        "operationId": "Analytics_SessionDurationsDistribution",
        "description": "Gets session duration .",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of  session durations for requested time range.",
            "schema": {
              "$ref": "#/definitions/SessionDurationsDistribution"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/session_counts": {
      "get": {
        "operationId": "Analytics_SessionCounts",
        "description": "Count of sessions in the time range.",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/IntervalParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of sessions in the time range.",
            "schema": {
              "$ref": "#/definitions/SessionCounts"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/places": {
      "get": {
        "operationId": "Analytics_PlaceCounts",
        "description": "Places in the time range",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/TopParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Places with count during the time range in descending order",
            "schema": {
              "$ref": "#/definitions/Places"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/oses": {
      "get": {
        "operationId": "Analytics_OperatingSystemCounts",
        "description": "OSes in the time range",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/TopParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "OSes with count during the time range in descending order",
            "schema": {
              "$ref": "#/definitions/OSes"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/models": {
      "get": {
        "operationId": "Analytics_ModelCounts",
        "description": "models in the time range",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/TopParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Models with count during the time range in descending order",
            "schema": {
              "$ref": "#/definitions/AnalyticsModels"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/log_flow": {
      "get": {
        "operationId": "Analytics_LogFlow",
        "description": "Logs received between the specified start time and the current time. The API will return a maximum of 100 logs per call.",
        "parameters": [
          {
            "$ref": "#/parameters/LogFlowStartTimeParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of logs for the requested time range.",
            "schema": {
              "$ref": "#/definitions/LogFlowLogContainer"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/languages": {
      "get": {
        "operationId": "Analytics_LanguageCounts",
        "description": "languages in the time range",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/TopParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Languages with count during the time range in descending order",
            "schema": {
              "$ref": "#/definitions/Languages"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/generic_log_flow": {
      "get": {
        "operationId": "Analytics_GenericLogFlow",
        "description": "Logs received between the specified start time and the current time. The API will return a maximum of 100 logs per call.",
        "parameters": [
          {
            "$ref": "#/parameters/LogFlowStartTimeParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of logs for the requested time range.",
            "schema": {
              "$ref": "#/definitions/LogFlowGenericLogContainer"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/events/{event_name}/properties/{event_property_name}/counts": {
      "get": {
        "operationId": "Analytics_EventPropertyCounts",
        "description": "Event properties value counts during the time range in descending order.  Limited up to 5 values.",
        "parameters": [
          {
            "$ref": "#/parameters/EventParameter"
          },
          {
            "$ref": "#/parameters/EventPropertyParameter"
          },
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/PropertyTopParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Event properties value counts during the time range in descending order.  Limited up to 5 values.",
            "schema": {
              "$ref": "#/definitions/EventPropertyValues"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/events/{event_name}/properties": {
      "get": {
        "operationId": "Analytics_EventProperties",
        "description": "Event properties.  Up to the first 5 received properties.",
        "parameters": [
          {
            "$ref": "#/parameters/EventParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Event properties.  Up to the first 5 received properties.",
            "schema": {
              "$ref": "#/definitions/EventProperties"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/events/{event_name}/event_count": {
      "get": {
        "operationId": "Analytics_EventCount",
        "description": "Count of events by interval in the time range.",
        "parameters": [
          {
            "$ref": "#/parameters/EventParameter"
          },
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of events by interval in the time range.",
            "schema": {
              "$ref": "#/definitions/EventCount"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/events/{event_name}/device_count": {
      "get": {
        "operationId": "Analytics_EventDeviceCount",
        "description": "Count of devices for an event by interval in the time range.",
        "parameters": [
          {
            "$ref": "#/parameters/EventParameter"
          },
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of devices for an event by interval in the time range.",
            "schema": {
              "$ref": "#/definitions/EventDeviceCount"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/events/{event_name}/count_per_session": {
      "get": {
        "operationId": "Analytics_EventPerSessionCount",
        "description": "Count of events per session by interval in the time range.",
        "parameters": [
          {
            "$ref": "#/parameters/EventParameter"
          },
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of events per session by interval in the time range.",
            "schema": {
              "$ref": "#/definitions/EventCountPerSession"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/events/{event_name}/count_per_device": {
      "get": {
        "operationId": "Analytics_EventPerDeviceCount",
        "description": "Count of events per device by interval in the time range.",
        "parameters": [
          {
            "$ref": "#/parameters/EventParameter"
          },
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of events per device by interval in the time range.",
            "schema": {
              "$ref": "#/definitions/EventCountPerDevice"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/events/{event_name}": {
      "delete": {
        "operationId": "Analytics_EventsDelete",
        "description": "Delete the set of Events with the specified event names",
        "parameters": [
          {
            "$ref": "#/parameters/EventParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Event successfully deleted"
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/events": {
      "get": {
        "operationId": "Analytics_Events",
        "description": "Count of active events in the time range ordered by event.",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/EventNameParameter"
          },
          {
            "$ref": "#/parameters/TopParameter"
          },
          {
            "$ref": "#/parameters/SkipParameter"
          },
          {
            "$ref": "#/parameters/InlineCountParameter"
          },
          {
            "$ref": "#/parameters/OrderByParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of active events in the time range ordered by event.",
            "schema": {
              "$ref": "#/definitions/Events"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/event_logs/{event_name}": {
      "delete": {
        "operationId": "Analytics_EventsDeleteLogs",
        "description": "Delete the set of Events with the specified event names",
        "parameters": [
          {
            "$ref": "#/parameters/EventParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Event successfully deleted"
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/distribution/release_counts": {
      "post": {
        "operationId": "Analytics_DistributionReleaseCounts",
        "description": "Count of total downloads for the provided distribution releases.",
        "parameters": [
          {
            "$ref": "#/parameters/GetReleasesParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of total downloads for the provided distribution release(s).",
            "schema": {
              "$ref": "#/definitions/ReleaseCounts"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/crashfree_device_percentages": {
      "get": {
        "operationId": "Analytics_CrashFreeDevicePercentages",
        "description": "Percentage of crash-free device by day in the time range based on the selected versions. Api will return -1 if crash devices is greater than active devices.",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Percentage of crash-free devices by day in the time range and overall percentage of the time range.",
            "schema": {
              "$ref": "#/definitions/CrashFreeDevicePercentages"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/crash_groups/{crash_group_id}/overall": {
      "get": {
        "operationId": "Analytics_CrashGroupTotals",
        "description": "Overall crashes and affected users count of the selected crash group with selected version. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/parameters/CrashGroupParameter"
          },
          {
            "$ref": "#/parameters/VersionParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Overall crashes and affected users count",
            "schema": {
              "$ref": "#/definitions/CrashOverall"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/crash_groups/{crash_group_id}/operating_systems": {
      "get": {
        "operationId": "Analytics_CrashGroupOperatingSystemCounts",
        "description": "top OSes of the selected crash group with selected version. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/parameters/CrashGroupParameter"
          },
          {
            "$ref": "#/parameters/VersionParameter"
          },
          {
            "$ref": "#/parameters/TopParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Top OSes with percentage in descending order",
            "schema": {
              "$ref": "#/definitions/CrashGroupOperatingSystems"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/crash_groups/{crash_group_id}/models": {
      "get": {
        "operationId": "Analytics_CrashGroupModelCounts",
        "description": "top models of the selected crash group with selected version. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/parameters/CrashGroupParameter"
          },
          {
            "$ref": "#/parameters/VersionParameter"
          },
          {
            "$ref": "#/parameters/TopParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Top Models with percentage in descending order",
            "schema": {
              "$ref": "#/definitions/CrashGroupModels"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/crash_groups/{crash_group_id}/crash_counts": {
      "get": {
        "operationId": "Analytics_CrashGroupCounts",
        "description": "Count of crashes by day in the time range of the selected crash group with selected version. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/parameters/CrashGroupParameter"
          },
          {
            "$ref": "#/parameters/VersionParameter"
          },
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of crashes by day in the time range and total crashes over the time range.",
            "schema": {
              "$ref": "#/definitions/CrashCounts"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/crash_groups": {
      "post": {
        "operationId": "Analytics_CrashGroupsTotals",
        "description": "Overall crashes and affected users count of the selected crash groups with selected versions",
        "parameters": [
          {
            "$ref": "#/parameters/CrashGroupsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Overall crashes and affected users count for all selected crash groups",
            "schema": {
              "$ref": "#/definitions/CrashesOverall"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/crash_counts": {
      "get": {
        "operationId": "Analytics_CrashCounts",
        "description": "Count of crashes by day in the time range based the selected versions. Available for UWP apps only.",
        "summary": "Available for UWP apps only.",
        "deprecated": true,
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of crashes by day in the time range and total crashes over the time range.",
            "schema": {
              "$ref": "#/definitions/CrashCounts"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/audiences/{audience_name}": {
      "head": {
        "operationId": "Analytics_AudienceNameExists",
        "description": "Returns whether audience definition exists.",
        "parameters": [
          {
            "$ref": "#/parameters/AudienceNameParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Audiences exists."
          },
          "404": {
            "description": "Audiences does not exist."
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      },
      "delete": {
        "operationId": "Analytics_DeleteAudience",
        "description": "Deletes audience definition.",
        "parameters": [
          {
            "$ref": "#/parameters/AudienceNameParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Audiences exists."
          },
          "404": {
            "description": "Audiences does not exist."
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      },
      "get": {
        "operationId": "Analytics_GetAudience",
        "description": "Gets audience definition.",
        "parameters": [
          {
            "$ref": "#/parameters/AudienceNameParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Audiences definition.",
            "schema": {
              "$ref": "#/definitions/Audience"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      },
      "put": {
        "operationId": "Analytics_CreateOrUpdateAudience",
        "description": "Creates or updates audience definition.",
        "parameters": [
          {
            "$ref": "#/parameters/AudienceNameParameter"
          },
          {
            "$ref": "#/parameters/AudienceBodyParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Updated audiences definition.",
            "schema": {
              "$ref": "#/definitions/Audience"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/audiences/metadata/device_properties/{property_name}/values": {
      "get": {
        "operationId": "Analytics_ListDevicePropertyValues",
        "description": "Get list of device property values.",
        "parameters": [
          {
            "$ref": "#/parameters/DevicePropertyNameParameter"
          },
          {
            "$ref": "#/parameters/ContainsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of supported device property values.",
            "schema": {
              "$ref": "#/definitions/AudienceDevicePropertyValuesListResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/audiences/metadata/device_properties": {
      "get": {
        "operationId": "Analytics_ListDeviceProperties",
        "description": "Get list of device properties.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of device properties.",
            "schema": {
              "$ref": "#/definitions/AudienceDevicePropertiesListResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/audiences/metadata/custom_properties": {
      "get": {
        "operationId": "Analytics_ListCustomProperties",
        "description": "Get list of custom properties.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of device properties.",
            "schema": {
              "$ref": "#/definitions/AudienceDevicePropertiesListResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/audiences/definition/test": {
      "post": {
        "operationId": "Analytics_TestAudience",
        "description": "Tests audience definition.",
        "parameters": [
          {
            "$ref": "#/parameters/AudienceBodyParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Tests audience definition.",
            "schema": {
              "$ref": "#/definitions/AudienceTestResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/audiences": {
      "get": {
        "operationId": "Analytics_ListAudiences",
        "description": "Get list of audiences.",
        "parameters": [
          {
            "$ref": "#/parameters/IncludeDisabledAudiencesParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "List of audiences.",
            "schema": {
              "$ref": "#/definitions/AudienceListResult"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/analytics/active_device_counts": {
      "get": {
        "operationId": "Analytics_DeviceCounts",
        "description": "Count of active devices by interval in the time range.",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Count of active devices by interval in the time range.",
            "schema": {
              "$ref": "#/definitions/ActiveDeviceCounts"
            }
          },
          "default": {
            "description": "Error code with reason",
            "schema": {
              "$ref": "#/definitions/Error"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "analytics"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}": {
      "get": {
        "description": "Return a specific app with the given app name which belongs to the given owner.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_get",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "patch": {
        "description": "Partially updates a single app",
        "parameters": [
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "name": "app",
            "in": "body",
            "description": "The partial data for the app",
            "schema": {
              "$ref": "#/definitions/AppPatchRequest"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppResponse"
            }
          },
          "default": {
            "description": "BadRequest",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_update",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "delete": {
        "description": "Delete an app",
        "parameters": [
          {
            "$ref": "#/parameters/app_name"
          },
          {
            "$ref": "#/parameters/owner_name"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_delete",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/apps": {
      "post": {
        "description": "Creates a new app and returns it to the caller",
        "parameters": [
          {
            "$ref": "#/parameters/app"
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AppResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_create",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "get": {
        "description": "Returns a list of apps",
        "parameters": [
          {
            "name": "$orderBy",
            "description": "The name of the attribute by which to order the response by. By default, apps are in order of creation. All results are ordered in ascending order.",
            "in": "query",
            "type": "string",
            "enum": [
              "display_name",
              "name"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/AppResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "apps_list",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/api_tokens/{api_token_id}": {
      "delete": {
        "operationId": "apiTokens_delete",
        "description": "Delete the api_token object with the specific id",
        "parameters": [
          {
            "name": "api_token_id",
            "type": "string",
            "in": "path",
            "description": "The unique ID (UUID) of the api token",
            "required": true
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "400": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "404": {
            "description": "NotFound",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "Basic": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/api_tokens": {
      "get": {
        "operationId": "apiTokens_list",
        "description": "Returns api tokens for the authenticated user",
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/ApiTokensGetResponse"
              }
            }
          },
          "400": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "Basic": []
          }
        ],
        "tags": [
          "account"
        ]
      },
      "post": {
        "operationId": "apiTokens_new",
        "description": "Creates a new API token",
        "parameters": [
          {
            "name": "description",
            "in": "body",
            "description": "Description of the token",
            "schema": {
              "$ref": "#/definitions/ApiTokensCreateRequest"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/ApiTokensCreateResponse"
            }
          },
          "400": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          },
          "401": {
            "description": "Unauthorized",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "security": [
          {
            "Basic": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/account/test/export/users": {
      "get": {
        "description": "Lists user data",
        "operationId": "test_gdprExportUser",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestGDPRUser"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/account/test/export/featureFlags": {
      "get": {
        "description": "Lists feature flag data",
        "operationId": "test_gdprExportFeatureFlag",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestGDPRFeatureFlag"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/account/test/export/accounts": {
      "get": {
        "description": "Lists account data",
        "operationId": "test_gdprExportAccount",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestGDPRAccount"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    },
    "/v0.1/account/test/export": {
      "get": {
        "description": "Lists all the endpoints available for Test account data",
        "operationId": "test_gdprExport",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/TestGDPRResourceList"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "test"
        ]
      }
    }
  },
  "definitions": {
    "GetInAppUpdateTokenResponse": {
      "properties": {
        "token": {
          "type": "string",
          "description": "The api token generated will not be accessible again"
        }
      },
      "required": [
        "token"
      ]
    },
    "ApiTokensCreateResponse": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique id (UUID) of the api token"
        },
        "api_token": {
          "type": "string",
          "description": "The api token generated will not be accessible again"
        },
        "description": {
          "type": "string",
          "description": "The description of the token"
        },
        "scope": {
          "description": "The scope for this token.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all",
              "viewer"
            ]
          }
        },
        "created_at": {
          "type": "string",
          "description": "The creation time"
        }
      },
      "required": [
        "id",
        "created_at",
        "api_token"
      ]
    },
    "ApiTokensCreateRequest": {
      "properties": {
        "description": {
          "type": "string",
          "description": "The description of the token"
        },
        "scope": {
          "description": "The scope for this token.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all",
              "viewer"
            ]
          }
        }
      }
    },
    "ApiTokensGetResponse": {
      "properties": {
        "id": {
          "type": "string",
          "description": "The unique id (UUID) of the api token"
        },
        "description": {
          "type": "string",
          "description": "The description of the token"
        },
        "scope": {
          "description": "The scope for this token.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all",
              "viewer"
            ]
          }
        },
        "created_at": {
          "type": "string",
          "description": "The creation time"
        }
      },
      "required": [
        "id",
        "created_at"
      ]
    },
    "Status": {
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "type": "string"
        }
      }
    },
    "Failure": {
      "required": [
        "message"
      ],
      "properties": {
        "message": {
          "type": "string"
        }
      }
    },
    "ErrorResponse": {
      "type": "object",
      "properties": {
        "error": {
          "$ref": "#/definitions/ErrorDetails"
        }
      },
      "required": [
        "error"
      ]
    },
    "ErrorDetails": {
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "BadRequest",
            "Conflict",
            "NotAcceptable",
            "NotFound",
            "InternalServerError",
            "Unauthorized",
            "TooManyRequests"
          ]
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    },
    "SuccessResponse": {
      "required": [
        "message"
      ],
      "properties": {
        "message": {
          "type": "string"
        }
      }
    },
    "AADTenantAddRequest": {
      "properties": {
        "user_id": {
          "description": "The user wanting to add this tenant to the organization, must be an admin of the organization",
          "type": "string",
          "format": "uuid"
        },
        "aad_tenant_id": {
          "description": "The AAD tenant id",
          "type": "string",
          "format": "uuid"
        },
        "display_name": {
          "description": "The name of the AAD Tenant",
          "type": "string"
        }
      },
      "required": [
        "user_id",
        "aad_tenant_id",
        "display_name"
      ]
    },
    "AADTenantResponse": {
      "properties": {
        "aad_tenant_id": {
          "description": "The AAD tenant id",
          "type": "string",
          "format": "uuid"
        },
        "display_name": {
          "description": "The name of the AAD Tenant",
          "type": "string"
        }
      },
      "required": [
        "aad_tenant_id",
        "display_name"
      ]
    },
    "AddAppTesterRequest": {
      "properties": {
        "user_id": {
          "description": "The user ID of the tester that needs to be added",
          "type": "string",
          "format": "uuid"
        },
        "release_id": {
          "description": "The ID of the release the user was added to",
          "type": "integer"
        }
      },
      "required": [
        "user_id",
        "release_id"
      ]
    },
    "AddAppTesterResponse": {
      "properties": {
        "user_id": {
          "description": "The user ID of the tester that needs to be added",
          "type": "string",
          "format": "uuid"
        },
        "release_id": {
          "description": "The ID of the release the user was added to",
          "type": "integer"
        }
      },
      "required": [
        "user_id",
        "release_id"
      ]
    },
    "ApiTokensPostRequest": {
      "properties": {
        "description": {
          "description": "The description of the token",
          "type": "string"
        },
        "encrypted_token": {
          "description": "An encrypted value of the token.",
          "type": "string"
        },
        "scope": {
          "description": "The scope for this token. An array of supported roles.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all",
              "in_app_update",
              "viewer"
            ]
          }
        },
        "token_hash": {
          "description": "The hashed value of api token",
          "type": "string"
        },
        "token_type": {
          "description": "The token's type. public:managed by the user; in_app_update:special token for in-app update scenario; buid:dedicated for CI usage for now; session:for CLI session management; tester_app: used for tester mobile app; default is \"public\".'",
          "type": "string",
          "enum": [
            "public",
            "in_app_update",
            "build",
            "session",
            "tester_app"
          ]
        }
      }
    },
    "AppPatchRequest": {
      "properties": {
        "description": {
          "description": "A short text describing the app",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the app",
          "type": "string"
        },
        "release_type": {
          "description": "A one-word descriptive release type value that starts with a capital letter but is otherwise lowercase",
          "type": "string"
        },
        "name": {
          "description": "The name of the app used in URLs",
          "type": "string"
        },
        "icon_url": {
          "description": "The string representation of the URL pointing to the app's icon",
          "type": "string"
        }
      }
    },
    "AppRepoPatchRequest": {
      "properties": {
        "repo_url": {
          "description": "The absolute URL of the repository",
          "type": "string"
        },
        "user_id": {
          "description": "The unique id (UUID) of the user",
          "format": "uuid",
          "type": "string"
        }
      }
    },
    "AppRepoPostRequest": {
      "properties": {
        "repo_url": {
          "description": "The absolute URL of the repository",
          "type": "string"
        },
        "repo_provider": {
          "description": "The provider of the repository",
          "type": "string",
          "enum": [
            "github",
            "bitbucket",
            "vsts"
          ]
        },
        "user_id": {
          "description": "The unique id (UUID) of the user who configured the repository",
          "format": "uuid",
          "type": "string"
        },
        "installation_id": {
          "description": "Installation id from the provider",
          "type": "string"
        },
        "repo_id": {
          "description": "Repository id from the provider",
          "type": "string"
        }
      },
      "required": [
        "repo_url",
        "user_id"
      ]
    },
    "AppRequest": {
      "properties": {
        "description": {
          "description": "A short text describing the app",
          "type": "string"
        },
        "release_type": {
          "description": "A one-word descriptive release-type value that starts with a capital letter but is otherwise lowercase",
          "type": "string"
        },
        "display_name": {
          "description": "The descriptive name of the app. This can contain any characters",
          "type": "string"
        },
        "name": {
          "description": "The name of the app used in URLs",
          "type": "string"
        },
        "os": {
          "description": "The OS the app will be running on",
          "type": "string",
          "enum": [
            "Android",
            "iOS",
            "macOS",
            "Tizen",
            "tvOS",
            "Windows",
            "Linux"
          ]
        },
        "platform": {
          "description": "The platform of the app",
          "type": "string",
          "enum": [
            "Java",
            "Objective-C-Swift",
            "UWP",
            "Cordova",
            "React-Native",
            "Xamarin",
            "Unity",
            "Electron"
          ]
        }
      },
      "required": [
        "display_name",
        "os",
        "platform"
      ]
    },
    "AppAddRequest": {
      "properties": {
        "name": {
          "description": "The name of the app to be added to the distribution group",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "AppDeleteRequest": {
      "properties": {
        "name": {
          "description": "The name of the app to be deleted from the distribution group",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "AzureSubscriptionAddRequest": {
      "properties": {
        "subscription_id": {
          "description": "The azure subscription id",
          "format": "uuid",
          "type": "string"
        },
        "tenant_id": {
          "description": "The tenant id of the azure subscription belongs to",
          "format": "uuid",
          "type": "string"
        },
        "subscription_name": {
          "description": "The name of the azure subscription",
          "type": "string"
        },
        "is_billing": {
          "description": "If the subscription is used for billing",
          "type": "boolean"
        }
      },
      "required": [
        "subscription_id",
        "tenant_id",
        "subscription_name"
      ]
    },
    "AzureSubscriptionUpdateBillableRequest": {
      "properties": {
        "is_billable": {
          "description": "Billable status of the subscription",
          "type": "boolean"
        }
      },
      "required": [
        "is_billable"
      ]
    },
    "AzureSubscriptionPatchRequest": {
      "properties": {
        "is_billing": {
          "description": "If the subscription is used for billing",
          "type": "boolean"
        }
      },
      "required": [
        "is_billing"
      ]
    },
    "AzureSubscriptionAddToAppRequest": {
      "properties": {
        "subscription_id": {
          "format": "uuid",
          "description": "The azure subscription id",
          "type": "string"
        }
      },
      "required": [
        "subscription_id"
      ]
    },
    "DistributionGroupPatchRequest": {
      "properties": {
        "name": {
          "description": "The name of the distribution group",
          "type": "string"
        },
        "is_public": {
          "description": "Whether the distribution group is public",
          "type": "boolean"
        }
      }
    },
    "DistributionGroupRequest": {
      "properties": {
        "name": {
          "description": "The name of the distribution group",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the distribution group. If not specified, the name will be used.",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "AppDistributionGroupUsersRequest": {
      "properties": {
        "member_ids": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid"
          }
        }
      }
    },
    "DistributionGroupUserRequest": {
      "properties": {
        "user_emails": {
          "description": "The list of emails of the users",
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "DistributionGroupAppAddRequest": {
      "properties": {
        "apps": {
          "description": "The list of apps to add to distribution group",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AppAddRequest"
          }
        }
      }
    },
    "DistributionGroupAppsDeleteRequest": {
      "properties": {
        "apps": {
          "description": "The list of apps to delete from the distribution group",
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/AppDeleteRequest"
          }
        }
      }
    },
    "DistributionGroupAADGroupsDeleteRequest": {
      "properties": {
        "aad_group_ids": {
          "description": "The list of aad group ids",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "DataDeletionRequest": {
      "properties": {
        "data_deletion_type": {
          "description": "Type of data to delete",
          "type": "string"
        }
      }
    },
    "DistributionGroupAADGroupRequest": {
      "properties": {
        "aad_groups": {
          "description": "The list of aad group ids and names to add",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DistributionGroupAADGroupBase"
          }
        }
      }
    },
    "DistributionGroupAADGroupBase": {
      "properties": {
        "aad_group_id": {
          "description": "The id of the aad group",
          "type": "string",
          "format": "uuid"
        },
        "display_name": {
          "description": "The display name of the aad group",
          "type": "string"
        }
      }
    },
    "DistributionGroupsUserVerifyRequest": {
      "properties": {
        "distribution_group_ids": {
          "description": "An array of distribution group ids",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DistributionGroupIdRequest"
          }
        }
      },
      "required": [
        "distribution_group_ids"
      ]
    },
    "DistributionGroupIdRequest": {
      "properties": {
        "id": {
          "description": "The id of the distribution group",
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "id"
      ]
    },
    "EmailVerificationRequest": {
      "properties": {
        "token": {
          "description": "The verification token that was sent to the user",
          "type": "string"
        }
      },
      "required": [
        "token"
      ]
    },
    "ExternalRepositoryProvider": {
      "type": "string",
      "enum": [
        "github"
      ],
      "description": "Supported external providers of source control repositories"
    },
    "ExternalUserRequest": {
      "properties": {
        "app_invitation": {
          "description": "The token of the app invitation which lead to signup",
          "type": "string"
        },
        "tester_invitation": {
          "description": "The token of the test invitation which lead to signup",
          "type": "string"
        },
        "organization_invitation": {
          "description": "The token of the organization invitation which lead to signup",
          "type": "string"
        },
        "avatar_url": {
          "description": "The avatar URL of the user",
          "type": "string"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "email": {
          "description": "The email address of the user",
          "type": "string"
        },
        "name": {
          "description": "The unique name that is used to identify the user. If no explicit value is given, a default will be auto-generated from the `display_name` value",
          "type": "string"
        }
      },
      "required": [
        "email"
      ]
    },
    "ExternalAppId": {
      "properties": {
        "external_id": {
          "description": "The identifier for external apps that map to an App Center app",
          "type": "string"
        }
      }
    },
    "FeaturePatchRequest": {
      "properties": {
        "description": {
          "description": "The friendly name of the feature",
          "type": "string"
        },
        "display_name": {
          "description": "The full (friendly) name of the feature.",
          "type": "string"
        },
        "state": {
          "description": "The state of the feature",
          "type": "integer"
        }
      }
    },
    "FeatureCreateRequest": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The unique name of the feature"
        },
        "display_name": {
          "type": "string",
          "description": "The full (friendly) name of the feature."
        },
        "state": {
          "type": "integer",
          "description": "The state of the feature"
        },
        "description": {
          "type": "string",
          "description": "The friendly name of the feature"
        }
      },
      "required": [
        "name",
        "display_name"
      ]
    },
    "GrantAdminRoleRequest": {
      "properties": {
        "admin_role": {
          "description": "The new admin_role",
          "type": "string",
          "enum": [
            "superAdmin",
            "admin",
            "devOps",
            "customerSupport",
            "notAdmin"
          ]
        }
      },
      "required": [
        "admin_role"
      ]
    },
    "InternalBulkAppResponse": {
      "properties": {
        "app_name": {
          "description": "The name of the app",
          "type": "string"
        },
        "owner_display_name": {
          "description": "The display name of the owner",
          "type": "string"
        }
      }
    },
    "InternalHockeyAppCompatibilityResponse": {
      "properties": {
        "owner_type": {
          "description": "The owner type of the app",
          "type": "string",
          "enum": [
            "user",
            "organization"
          ]
        },
        "os": {
          "description": "The OS of the app",
          "type": "string",
          "enum": [
            "Android",
            "iOS",
            "macOS",
            "Windows",
            "Linux",
            "Custom"
          ]
        },
        "platform": {
          "description": "The OS of the app",
          "type": "string",
          "enum": [
            "Java",
            "Objective-C-Swift",
            "Cordova",
            "React-Native",
            "Unity",
            "Electron",
            "Xamarin",
            "Unknown"
          ]
        },
        "has_crashes": {
          "description": "Does the HockeyApp app have crashes from within the last 90 days?",
          "type": "boolean"
        },
        "has_feedback": {
          "description": "Does the HockeyApp app have feedback from within the last 90 days?",
          "type": "boolean"
        },
        "has_metrics": {
          "description": "Does the HockeyApp app have metrics from within the last 30 days?",
          "type": "boolean"
        },
        "has_external_builds": {
          "description": "Does the HockeyApp app have any external builds?",
          "type": "boolean"
        },
        "has_specified_build_server_url": {
          "description": "Does the HockeyApp app have any build server URLs specified?",
          "type": "boolean"
        },
        "has_distribution_groups_outside_of_ownership": {
          "description": "Does the HockeyApp app have an associated Distribution Group that is owned by a different owner?",
          "type": "boolean"
        },
        "owner_has_distribution_groups": {
          "description": "Does the HockeyApp app's owner own any Distribution Groups?",
          "type": "boolean"
        },
        "bugtracker_type": {
          "description": "Does the HockeyApp app have any bugtracker configured? Which type?",
          "type": "string",
          "enum": [
            "none",
            "vso",
            "jira5",
            "github",
            "other"
          ]
        },
        "webhook_types": {
          "description": "Does the HockeyApp app have any webhooks configured? Which types?",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "slack",
              "teams",
              "generic"
            ]
          }
        }
      }
    },
    "InternalHockeyAppCutoverStatusResponse": {
      "properties": {
        "id": {
          "description": "The ID of the app",
          "type": "string"
        },
        "status": {
          "description": "Does the HockeyApp app have crashes from within the last 90 days?",
          "type": "string",
          "enum": [
            "not_requested",
            "requested",
            "in_progress",
            "completed"
          ]
        }
      },
      "required": [
        "id"
      ]
    },
    "InternalUserRequest": {
      "properties": {
        "app_invitation": {
          "description": "The token of the app invitation which lead to signup",
          "type": "string"
        },
        "tester_invitation": {
          "description": "The token of the test invitation which lead to signup",
          "type": "string"
        },
        "organization_invitation": {
          "description": "The token of the organization invitation which lead to signup",
          "type": "string"
        },
        "avatar_url": {
          "description": "The avatar URL of the user",
          "type": "string"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "email": {
          "description": "The email address of the user",
          "type": "string"
        },
        "name": {
          "description": "The unique name that is used to identify the user.",
          "type": "string"
        },
        "password": {
          "description": "The password of the user. Needs to be at least 8 characters long and contain at least one lower- and one uppercase letter.",
          "type": "string"
        },
        "portal_subdomain": {
          "description": "The sub-domain of the portal from which this request was made. Will be used to build the invitation link.",
          "type": "string",
          "enum": [
            "install."
          ]
        }
      },
      "required": [
        "email",
        "name",
        "password"
      ]
    },
    "OrganizationPatchRequest": {
      "properties": {
        "display_name": {
          "description": "The full (friendly) name of the organization.",
          "type": "string"
        },
        "name": {
          "description": "The name of the organization used in URLs",
          "type": "string"
        }
      }
    },
    "OrganizationRequest": {
      "properties": {
        "display_name": {
          "description": "The display name of the organization",
          "type": "string"
        },
        "name": {
          "description": "The name of the organization used in URLs",
          "type": "string"
        }
      }
    },
    "OrganizationUserPatchRequest": {
      "properties": {
        "role": {
          "description": "The user's role in the organizatiion",
          "type": "string",
          "enum": [
            "admin",
            "collaborator"
          ]
        }
      }
    },
    "AddOrganizationAdminRequest": {
      "properties": {
        "user_id": {
          "description": "The internal unique id (UUID) of the account.",
          "format": "uuid",
          "type": "string"
        }
      },
      "required": [
        "user_id"
      ]
    },
    "TransferAppAdminRequest": {
      "properties": {
        "new_owner_id": {
          "description": "The internal unique id (UUID) of the user/org.",
          "format": "uuid",
          "type": "string"
        }
      },
      "required": [
        "new_owner_id"
      ]
    },
    "PasswordUpdateRequest": {
      "properties": {
        "new_password": {
          "description": "The new password that will be set for the user. Needs to be at least 8 characters long and contain at least one lower- and one uppercase letter.",
          "type": "string"
        },
        "old_password": {
          "description": "The old password, if needed.",
          "type": "string"
        }
      },
      "required": [
        "new_password"
      ]
    },
    "PostRepositoryProviderMappingRequest": {
      "properties": {
        "external_account_id": {
          "description": "Id of user in the external provider service",
          "type": "string"
        },
        "provider": {
          "$ref": "#/definitions/ExternalRepositoryProvider"
        },
        "account_id": {
          "description": "App Center account id to link to this provider and external id",
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "external_account_id",
        "provider",
        "account_id"
      ]
    },
    "GetOrCreateRepositoryProviderMappingRequest": {
      "properties": {
        "external_account_name": {
          "description": "The account name given by the external provider. If provided, create an organization and the mapping. If not, create mapping with user.",
          "type": "string"
        }
      }
    },
    "ResendVerificationRequest": {
      "properties": {
        "name": {
          "description": "The email or name of the user to resend verification",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "ResetPasswordUsingTokenRequest": {
      "properties": {
        "new_password": {
          "description": "The new password. Needs to be at least 8 characters long and contain at least one lower- and one uppercase letter.",
          "type": "string"
        },
        "token": {
          "description": "The reset password token that was sent to the user",
          "type": "string"
        }
      },
      "required": [
        "token",
        "new_password"
      ]
    },
    "UserAppPermissionsUpdateRequest": {
      "properties": {
        "permissions": {
          "description": "The permissions the user has for the app",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "manager",
              "developer",
              "viewer"
            ]
          }
        }
      },
      "required": [
        "permissions"
      ]
    },
    "UserInvitationPermissionsUpdateRequest": {
      "properties": {
        "permissions": {
          "description": "The permissions the user has for the app in the invitation",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "manager",
              "developer",
              "viewer"
            ]
          }
        }
      },
      "required": [
        "permissions"
      ]
    },
    "UserEmailRequest": {
      "properties": {
        "user_email": {
          "description": "The user's email address'",
          "type": "string"
        }
      },
      "required": [
        "user_email"
      ]
    },
    "UserNameUpdateRequest": {
      "properties": {
        "name": {
          "description": "The new, unique name that is used to identify.",
          "type": "string"
        }
      }
    },
    "UserUpdateRequest": {
      "properties": {
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        }
      }
    },
    "UserUpdateRequestInternal": {
      "properties": {
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "name": {
          "description": "The new, unique name that is used to identify.",
          "type": "string"
        },
        "next_nps_survey_date": {
          "description": "The date in the future when the user should be checked again for NPS eligibility",
          "type": "string"
        },
        "email": {
          "description": "The email address for this user",
          "type": "string"
        }
      }
    },
    "UserSettingRequest": {
      "properties": {
        "value": {
          "description": "The setting value",
          "type": "string"
        }
      },
      "required": [
        "value"
      ]
    },
    "AccountResponse": {
      "properties": {
        "id": {
          "description": "The internal unique id (UUID) of the account.",
          "format": "uuid",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the account",
          "type": "string"
        },
        "name": {
          "description": "The slug name of the account",
          "type": "string"
        },
        "email": {
          "description": "The account's email. For org that value might be empty.",
          "type": "string"
        },
        "origin": {
          "description": "The creation origin of this account",
          "type": "string",
          "enum": [
            "appcenter",
            "hockeyapp"
          ]
        },
        "type": {
          "description": "The type of this account",
          "type": "string",
          "enum": [
            "user",
            "org"
          ]
        }
      },
      "required": [
        "id",
        "display_name",
        "name",
        "origin",
        "type"
      ]
    },
    "ApiTokenDeleteResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the api token",
          "format": "uuid",
          "type": "string"
        },
        "token_hash": {
          "description": "The hashed value of api token",
          "type": "string"
        }
      },
      "required": [
        "id",
        "token_hash"
      ]
    },
    "ApiTokenGetUserResponse": {
      "properties": {
        "token_id": {
          "description": "The token's unique id (UUID)",
          "format": "uuid",
          "type": "string"
        },
        "token_scope": {
          "description": "The token's scope. A list of allowed roles.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all",
              "in_app_update",
              "viewer"
            ]
          }
        },
        "user_email": {
          "description": "The user email",
          "type": "string"
        },
        "user_id": {
          "description": "The unique id (UUID) of the user",
          "format": "uuid",
          "type": "string"
        },
        "user_origin": {
          "description": "The creation origin of the user who created this api token",
          "type": "string",
          "enum": [
            "appcenter",
            "hockeyapp",
            "codepush"
          ]
        }
      },
      "required": [
        "token_id",
        "token_scope",
        "user_id",
        "user_email",
        "user_origin"
      ]
    },
    "ApiTokenResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the api token",
          "format": "uuid",
          "type": "string"
        },
        "created_at": {
          "description": "The creation time",
          "type": "string"
        },
        "scope": {
          "description": "The token's scope. A list of allowed roles.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all",
              "in_app_update",
              "viewer"
            ]
          }
        },
        "encrypted_token": {
          "description": "The encrypted value of a token. This value will only be returned for token of type in_app_update.",
          "type": "string"
        },
        "description": {
          "description": "The description of the token",
          "type": "string"
        }
      },
      "required": [
        "id",
        "created_at"
      ]
    },
    "AppGroupResponse": {
      "properties": {
        "id": {
          "description": "The unique ID (UUID) of the app",
          "format": "uuid",
          "type": "string"
        },
        "group_id": {
          "description": "The unique ID (UUID) of the group that the app belongs to",
          "format": "uuid",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the app",
          "type": "string"
        },
        "release_type": {
          "description": "A one-word descriptive release-type value that starts with a capital letter but is otherwise lowercase",
          "type": "string"
        },
        "name": {
          "description": "The name of the app used in URLs",
          "type": "string"
        },
        "os": {
          "description": "The OS the app will be running on",
          "type": "string",
          "enum": [
            "Android",
            "iOS",
            "macOS",
            "Tizen",
            "tvOS",
            "Windows",
            "Linux",
            "Custom"
          ]
        },
        "platform": {
          "description": "The platform of the app",
          "type": "string",
          "enum": [
            "Java",
            "Objective-C-Swift",
            "UWP",
            "Cordova",
            "React-Native",
            "Unity",
            "Electron",
            "Xamarin",
            "Unknown"
          ]
        }
      },
      "required": [
        "id",
        "group_id",
        "name",
        "os",
        "platform"
      ]
    },
    "AppInvitationDetailResponse": {
      "properties": {
        "id": {
          "description": "The unique ID (UUID) of the invitation",
          "type": "string",
          "format": "uuid"
        },
        "app": {
          "$ref": "#/definitions/AppResponse"
        },
        "email": {
          "description": "The email address of the invited user",
          "type": "string"
        },
        "invite_type": {
          "description": "The invitation type",
          "type": "string",
          "enum": [
            "developer",
            "tester"
          ]
        },
        "invited_by": {
          "$ref": "#/definitions/UserProfileResponse"
        },
        "is_existing_user": {
          "description": "Indicates whether the invited user already exists",
          "type": "boolean"
        },
        "permissions": {
          "description": "The permissions the user has for the app",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "manager",
              "developer",
              "viewer",
              "tester"
            ]
          }
        },
        "app_count": {
          "description": "The number of apps in the group",
          "type": "number"
        },
        "distribution_group": {
          "description": "The organization that owns the distribution group, if it exists",
          "type": "object",
          "properties": {
            "owner": {
              "$ref": "#/definitions/Owner"
            }
          }
        }
      },
      "required": [
        "id",
        "email",
        "is_existing_user",
        "invited_by",
        "invite_type",
        "app"
      ]
    },
    "AppRepoResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the repository integration",
          "type": "string",
          "format": "uuid"
        },
        "app_id": {
          "description": "The unique id (UUID) of the app that this repository integration belongs to",
          "type": "string",
          "format": "uuid"
        },
        "repo_url": {
          "description": "The absolute URL of the repository",
          "type": "string"
        },
        "repo_provider": {
          "description": "The provider of the repository",
          "type": "string",
          "enum": [
            "github",
            "bitbucket",
            "vsts"
          ]
        },
        "user_id": {
          "description": "The unique id (UUID) of the user who configured the repository",
          "type": "string",
          "format": "uuid"
        },
        "installation_id": {
          "description": "Installation id from the provider",
          "type": "string"
        },
        "repo_id": {
          "description": "Repository id from the provider",
          "type": "string"
        }
      },
      "required": [
        "id",
        "app_id",
        "user_id",
        "repo_url"
      ]
    },
    "BasicAppResponse": {
      "properties": {
        "id": {
          "description": "The unique ID (UUID) of the app",
          "type": "string",
          "format": "uuid"
        },
        "description": {
          "description": "The description of the app",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the app",
          "type": "string"
        },
        "release_type": {
          "description": "A one-word descriptive release-type value that starts with a capital letter but is otherwise lowercase",
          "type": "string"
        },
        "icon_url": {
          "description": "The string representation of the URL pointing to the app's icon",
          "type": "string"
        },
        "icon_source": {
          "description": "The string representation of the source of the app's icon",
          "type": "string"
        },
        "name": {
          "description": "The name of the app used in URLs",
          "type": "string"
        },
        "os": {
          "description": "The OS the app will be running on",
          "type": "string",
          "enum": [
            "Android",
            "iOS",
            "macOS",
            "Tizen",
            "tvOS",
            "Windows",
            "Linux",
            "Custom"
          ]
        },
        "owner": {
          "$ref": "#/definitions/Owner"
        }
      },
      "required": [
        "id",
        "display_name",
        "name",
        "os",
        "owner"
      ]
    },
    "AppResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/BasicAppResponse"
        },
        {
          "properties": {
            "app_secret": {
              "description": "A unique and secret key used to identify the app in communication with the ingestion endpoint for crash reporting and analytics",
              "type": "string"
            },
            "azure_subscription": {
              "$ref": "#/definitions/AzureSubscriptionResponse"
            },
            "platform": {
              "description": "The platform of the app",
              "type": "string",
              "enum": [
                "Java",
                "Objective-C-Swift",
                "UWP",
                "Cordova",
                "React-Native",
                "Unity",
                "Electron",
                "Xamarin",
                "Unknown"
              ]
            },
            "origin": {
              "description": "The creation origin of this app",
              "type": "string",
              "enum": [
                "appcenter",
                "hockeyapp",
                "codepush"
              ]
            },
            "created_at": {
              "description": "The created date of this app",
              "type": "string"
            },
            "updated_at": {
              "description": "The last updated date of this app",
              "type": "string"
            },
            "member_permissions": {
              "description": "The permissions of the calling user",
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "manager",
                  "developer",
                  "viewer",
                  "tester"
                ]
              }
            }
          }
        }
      ],
      "required": [
        "app_secret",
        "platform",
        "origin"
      ]
    },
    "TesterAppResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/BasicAppResponse"
        },
        {
          "properties": {
            "microsoft_internal": {
              "description": "it indicates if the app is microsoft internal",
              "type": "boolean"
            },
            "permissions": {
              "description": "The permissions associated with the app",
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "can_remove_from_app"
                ]
              }
            }
          }
        }
      ]
    },
    "OrgDistributionGroupAppResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/BasicAppResponse"
        },
        {
          "properties": {
            "platform": {
              "description": "The platform of the app",
              "type": "string"
            },
            "origin": {
              "description": "The creation origin of this app",
              "type": "string"
            }
          }
        }
      ]
    },
    "AppResponseInternal": {
      "allOf": [
        {
          "$ref": "#/definitions/AppResponse"
        },
        {
          "properties": {
            "feature_flags": {
              "description": "The feature flags that are enabled for this app",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "repositories": {
              "description": "The repositories associated with this app",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "repo_provider": {
                    "type": "string"
                  },
                  "repo_url": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      ]
    },
    "AppUserPermissionResponse": {
      "properties": {
        "app_id": {
          "description": "The unique id (UUID) of the app",
          "type": "string",
          "format": "uuid"
        },
        "permissions": {
          "description": "The permissions the user has for the app",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "manager",
              "developer",
              "viewer",
              "tester"
            ]
          }
        },
        "user_email": {
          "description": "The email of the user",
          "type": "string"
        },
        "user_id": {
          "description": "The unique id (UUID) of the user",
          "type": "string",
          "format": "uuid"
        },
        "app_origin": {
          "description": "The creation origin of this app",
          "type": "string",
          "enum": [
            "appcenter",
            "hockeyapp",
            "codepush"
          ]
        },
        "app_secret": {
          "description": "A unique and secret key used to identify the app in communication with the ingestion endpoint for crash reporting and analytics",
          "type": "string"
        }
      },
      "required": [
        "app_id",
        "user_id",
        "user_email",
        "permissions",
        "app_origin",
        "app_secret"
      ]
    },
    "AppWithTeamPermissionsResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/AppResponse"
        },
        {
          "properties": {
            "team_permissions": {
              "description": "The permissions the team has for the app",
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "manager",
                  "developer",
                  "viewer"
                ]
              }
            }
          }
        }
      ]
    },
    "OrgUserPermissionResponse": {
      "properties": {
        "orgId": {
          "description": "The unique id (UUID) of the org",
          "type": "string",
          "format": "uuid"
        },
        "userRole": {
          "description": "The user role for the org",
          "type": "string",
          "enum": [
            "admin",
            "collaborator"
          ]
        }
      },
      "required": [
        "orgId",
        "userRole"
      ]
    },
    "AzureSubscriptionResponse": {
      "properties": {
        "subscription_id": {
          "description": "The azure subscription id",
          "type": "string",
          "format": "uuid"
        },
        "tenant_id": {
          "description": "The tenant id of the azure subscription belongs to",
          "type": "string",
          "format": "uuid"
        },
        "subscription_name": {
          "description": "The name of the azure subscription",
          "type": "string"
        },
        "is_billing": {
          "description": "If the subscription is used for billing",
          "type": "boolean"
        },
        "is_billable": {
          "description": "If the subscription can be used for billing",
          "type": "boolean"
        },
        "is_microsoft_internal": {
          "description": "If the subscription is internal Microsoft subscription",
          "type": "boolean"
        }
      },
      "required": [
        "subscription_id",
        "tenant_id",
        "subscription_name"
      ]
    },
    "DistributionGroupResponse": {
      "properties": {
        "id": {
          "description": "The unique ID of the distribution group",
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "description": "The name of the distribution group used in URLs",
          "type": "string"
        },
        "display_name": {
          "description": "The name of the distribution group",
          "type": "string"
        },
        "origin": {
          "description": "The creation origin of this distribution group",
          "type": "string",
          "enum": [
            "appcenter",
            "hockeyapp"
          ]
        },
        "is_public": {
          "description": "Whether the distribution group is public",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "name",
        "origin",
        "is_public"
      ]
    },
    "DistributionGroupDetailsResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/DistributionGroupResponse"
        },
        {
          "properties": {
            "is_shared": {
              "description": "Whether the distribution group is shared group or not",
              "type": "boolean"
            },
            "total_apps_count": {
              "description": "The count of apps associated with this distribution group",
              "type": "number"
            },
            "total_user_count": {
              "description": "The count of users in the distribution group",
              "type": "number"
            },
            "notified_user_count": {
              "description": "The count of non-pending users in the distribution group who will be notified by new releases",
              "type": "number"
            },
            "group_type": {
              "description": "Type of group (Default, HockeyAppDefault or MicrosoftDogfooding)",
              "type": "string",
              "enum": [
                "Default",
                "HockeyAppDefault",
                "MicrosoftDogfooding"
              ]
            },
            "users": {
              "description": "The distribution group users",
              "items": {
                "$ref": "#/definitions/DistributionGroupUserGetResponse"
              },
              "type": "array"
            }
          }
        }
      ],
      "required": [
        "is_shared",
        "users",
        "total_user_count",
        "notified_user_count",
        "total_apps_count"
      ]
    },
    "OrgDistributionGroupDetailsResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/DistributionGroupResponse"
        },
        {
          "properties": {
            "total_apps_count": {
              "description": "The count of apps associated with this distribution group",
              "type": "number"
            },
            "total_users_count": {
              "description": "The count of users in the distribution group",
              "type": "number"
            },
            "apps": {
              "description": "The apps associated with the distribution group",
              "items": {
                "$ref": "#/definitions/AppResponse"
              },
              "type": "array"
            }
          }
        }
      ],
      "required": [
        "apps",
        "total_users_count",
        "total_apps_count"
      ]
    },
    "GeneralDistributionGroupDetailsResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/DistributionGroupResponse"
        },
        {
          "properties": {
            "is_shared": {
              "description": "Whether the distribution group is shared group or not",
              "type": "boolean"
            },
            "owner_app_id": {
              "description": "If distribution group is owned by an app, this is the unique app ID",
              "type": "string",
              "format": "uuid"
            },
            "owner_org_id": {
              "description": "If distribution group is owned by an org, this is the unique org ID",
              "type": "string",
              "format": "uuid"
            }
          }
        }
      ],
      "required": [
        "is_shared"
      ]
    },
    "DistributionGroupUserDeleteResponse": {
      "properties": {
        "code": {
          "description": "The code of the result",
          "type": "string"
        },
        "message": {
          "description": "The message of the result",
          "type": "integer"
        },
        "status": {
          "description": "The status code of the result",
          "type": "integer"
        },
        "user_email": {
          "description": "The email of the user",
          "type": "string"
        }
      },
      "required": [
        "status"
      ]
    },
    "CloseAccountOrganizationResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/OrganizationResponse"
        },
        {
          "properties": {
            "collaborators_count": {
              "description": "The number of collaborators from the organization",
              "type": "number"
            }
          }
        }
      ],
      "required": [
        "display_name",
        "name",
        "origin",
        "collaborators_count"
      ]
    },
    "DistributionGroupUserGetResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the user",
          "type": "string",
          "format": "uuid"
        },
        "avatar_url": {
          "description": "The avatar URL of the user",
          "type": "string"
        },
        "can_change_password": {
          "description": "User is required to send an old password in order to change the password.",
          "type": "boolean"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "email": {
          "description": "The email address of the user",
          "type": "string"
        },
        "invite_pending": {
          "description": "Whether the has accepted the invite. Available when an invite is pending, and the value will be \"true\".",
          "type": "boolean"
        },
        "name": {
          "description": "The unique name that is used to identify the user.",
          "type": "string"
        }
      },
      "required": [
        "email"
      ]
    },
    "DistributionGroupUserPostResponse": {
      "properties": {
        "code": {
          "description": "The code of the result",
          "type": "string"
        },
        "invite_pending": {
          "description": "Whether the has accepted the invite. Available when an invite is pending, and the value will be \"true\".",
          "type": "boolean"
        },
        "message": {
          "description": "The message of the result",
          "type": "integer"
        },
        "status": {
          "description": "The status code of the result",
          "type": "integer"
        },
        "user_email": {
          "description": "The email of the user",
          "type": "string"
        }
      },
      "required": [
        "status"
      ]
    },
    "DistributionGroupTesterGetResponse": {
      "properties": {
        "display_name": {
          "description": "The full name of the tester. Might for example be first and last name",
          "type": "string"
        },
        "name": {
          "description": "The unique name that is used to identify the tester.",
          "type": "string"
        },
        "email": {
          "description": "The email address of the tester",
          "type": "string"
        }
      },
      "required": [
        "name",
        "email"
      ]
    },
    "DistributionGroupAADGroupPostResponse": {
      "properties": {
        "id": {
          "description": "The internal unique id (UUID) of the AAD group.",
          "type": "string",
          "format": "uuid"
        },
        "aad_group_id": {
          "description": "The AAD unique id (UUID) of the AAD group.",
          "type": "string",
          "format": "uuid"
        },
        "display_name": {
          "description": "The display name of the AAD group",
          "type": "string"
        }
      }
    },
    "DistributionGroupAadGroupsDeleteResponse": {
      "properties": {
        "code": {
          "description": "The code of the result",
          "type": "string"
        },
        "message": {
          "description": "The message of the result",
          "type": "integer"
        },
        "status": {
          "description": "The status code of the result",
          "type": "integer"
        },
        "aad_group_id": {
          "description": "The aad id of the group",
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "status"
      ]
    },
    "DistributionGroupWithUsersResponse": {
      "properties": {
        "id": {
          "description": "The unique ID of the distribution group",
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "description": "The name of the distribution group used in URLs",
          "type": "string"
        },
        "total_user_count": {
          "description": "The count of users in the distribution group",
          "type": "number"
        },
        "total_groups_count": {
          "description": "The count of aad groups in the distribution group",
          "type": "number"
        },
        "notified_user_count": {
          "description": "The count of non-pending users in the distribution group who will be notified by new releases",
          "type": "number"
        },
        "is_public": {
          "description": "Whether the distribution group is public",
          "type": "boolean"
        },
        "users": {
          "description": "The distribution group users",
          "items": {
            "$ref": "#/definitions/DistributionGroupUserGetResponse"
          },
          "type": "array"
        },
        "aad_groups": {
          "description": "The distribution group aad groups",
          "items": {
            "$ref": "#/definitions/DistributionGroupAADGroupPostResponse"
          },
          "type": "array"
        }
      },
      "required": [
        "id",
        "name",
        "users",
        "total_user_count",
        "notified_user_count"
      ]
    },
    "FeatureFlagsResponse": {
      "properties": {
        "feature_flags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "feature_flags"
      ]
    },
    "FeatureResponse": {
      "properties": {
        "description": {
          "description": "The description of the feature",
          "type": "string"
        },
        "display_name": {
          "description": "The friendly name of the feature",
          "type": "string"
        },
        "name": {
          "description": "The unique name of the feature",
          "type": "string"
        },
        "state": {
          "description": "The state (unset, enabled, disabled) of the feature",
          "type": "integer"
        }
      },
      "required": [
        "name",
        "display_name",
        "state"
      ]
    },
    "InternalUserSignupResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the user",
          "type": "string",
          "format": "uuid"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "email": {
          "description": "The email address of the user",
          "type": "string"
        },
        "external_provider": {
          "description": "The name of the external auth provider",
          "type": "string"
        },
        "external_user_id": {
          "description": "The user ID given by the external provider",
          "type": "string"
        },
        "name": {
          "description": "The unique name that is used to identify the user.",
          "type": "string"
        },
        "status": {
          "description": "The current status of the user record after signup",
          "type": "string",
          "enum": [
            "Complete",
            "NeedsVerification"
          ]
        }
      },
      "required": [
        "id",
        "display_name",
        "email",
        "name"
      ]
    },
    "InvitationDetailResponse": {
      "properties": {
        "invitation_id": {
          "description": "The id of the invitation",
          "type": "string",
          "format": "uuid"
        },
        "invited_by": {
          "$ref": "#/definitions/UserProfileResponse"
        },
        "organization": {
          "$ref": "#/definitions/OrganizationResponse"
        },
        "app": {
          "$ref": "#/definitions/AppResponse"
        }
      },
      "required": [
        "invited_by",
        "invitation_id"
      ]
    },
    "GDPRInvitationDetailResponse": {
      "properties": {
        "invitation_id": {
          "description": "The id of the invitation",
          "type": "string",
          "format": "uuid"
        },
        "organization": {
          "$ref": "#/definitions/OrganizationResponse"
        },
        "app": {
          "$ref": "#/definitions/AppResponse"
        }
      },
      "required": [
        "invitation_id"
      ]
    },
    "OrgNameAvailabilityResponse": {
      "properties": {
        "available": {
          "description": "The availability status of the requested org name",
          "type": "boolean"
        },
        "name": {
          "description": "The generated org name",
          "type": "string"
        }
      },
      "required": [
        "available",
        "name"
      ]
    },
    "OrganizationInvitationDetailResponse": {
      "properties": {
        "id": {
          "description": "The unique ID (UUID) of the invitation",
          "type": "string",
          "format": "uuid"
        },
        "organization": {
          "$ref": "#/definitions/OrganizationResponse"
        },
        "email": {
          "description": "The email address of the invited user",
          "type": "string"
        },
        "invited_by": {
          "$ref": "#/definitions/UserProfileResponse"
        },
        "is_existing_user": {
          "description": "Indicates whether the invited user already exists",
          "type": "boolean"
        },
        "role": {
          "description": "The role assigned to the invited user",
          "type": "string"
        }
      },
      "required": [
        "id",
        "email",
        "is_existing_user",
        "invited_by",
        "organization"
      ]
    },
    "OrganizationInvitationSimpleDetailResponse": {
      "properties": {
        "id": {
          "description": "The unique ID (UUID) of the invitation",
          "type": "string",
          "format": "uuid"
        },
        "email": {
          "description": "The email address of the invited user",
          "type": "string"
        },
        "role": {
          "description": "The role assigned to the invited user",
          "type": "string"
        }
      },
      "required": [
        "id",
        "email",
        "role"
      ]
    },
    "OrganizationResponse": {
      "properties": {
        "id": {
          "description": "The internal unique id (UUID) of the organization.",
          "type": "string",
          "format": "uuid"
        },
        "display_name": {
          "description": "The display name of the organization",
          "type": "string"
        },
        "name": {
          "description": "The slug name of the organization",
          "type": "string"
        },
        "avatar_url": {
          "description": "The URL to a user-uploaded Avatar image",
          "type": "string"
        },
        "origin": {
          "description": "The creation origin of this organization",
          "type": "string",
          "enum": [
            "appcenter",
            "hockeyapp"
          ]
        },
        "created_at": {
          "description": "The creation date of this organization",
          "type": "string"
        },
        "updated_at": {
          "description": "The date the organization was last updated at",
          "type": "string"
        }
      },
      "required": [
        "id",
        "display_name",
        "name",
        "origin",
        "created_at",
        "updated_at"
      ]
    },
    "OrganizationResponseInternal": {
      "allOf": [
        {
          "$ref": "#/definitions/OrganizationResponse"
        },
        {
          "properties": {
            "feature_flags": {
              "description": "The feature flags that are enabled for this organization",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      ]
    },
    "OrganizationResponseManagement": {
      "allOf": [
        {
          "$ref": "#/definitions/OrganizationResponseInternal"
        },
        {
          "properties": {
            "email": {
              "description": "The organization email, if the app was synced from HockeyApp",
              "type": "string"
            },
            "created_at": {
              "description": "The date when the organization was created",
              "type": "string"
            },
            "updated_at": {
              "description": "The date when the organization was updated",
              "type": "string"
            }
          }
        }
      ]
    },
    "OrganizationUserResponse": {
      "properties": {
        "email": {
          "description": "The email address of the user",
          "type": "string"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "joined_at": {
          "description": "The date when the user joined the organization",
          "type": "string"
        },
        "name": {
          "description": "The unique name that is used to identify the user.",
          "type": "string"
        },
        "role": {
          "description": "The role the user has within the organization",
          "type": "string"
        }
      },
      "required": [
        "display_name",
        "email",
        "joined_at",
        "name",
        "role"
      ]
    },
    "TeamAppUpdateRequest": {
      "properties": {
        "permissions": {
          "description": "The permissions all members of the team have on the app",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "manager",
              "developer",
              "viewer"
            ]
          }
        }
      },
      "required": [
        "permissions"
      ]
    },
    "TeamRequest": {
      "properties": {
        "display_name": {
          "description": "The display name of the team",
          "type": "string"
        },
        "name": {
          "description": "The name of the team",
          "type": "string"
        },
        "description": {
          "description": "The description of the team",
          "type": "string"
        }
      },
      "required": [
        "display_name"
      ]
    },
    "TeamResponse": {
      "properties": {
        "id": {
          "description": "The internal unique id (UUID) of the team.",
          "type": "string",
          "format": "uuid"
        },
        "name": {
          "description": "The name of the team",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the team",
          "type": "string"
        },
        "description": {
          "description": "The description of the team",
          "type": "string"
        }
      },
      "required": [
        "id",
        "name",
        "display_name"
      ]
    },
    "TeamAppResponse": {
      "allOf": [
        {
          "$ref": "#/definitions/TeamResponse"
        },
        {
          "properties": {
            "permissions": {
              "description": "The permissions the team has for the app",
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "manager",
                  "developer",
                  "viewer",
                  "tester"
                ]
              }
            }
          }
        }
      ]
    },
    "StatusResponse": {
      "properties": {
        "status": {
          "type": "string"
        }
      },
      "required": [
        "status"
      ]
    },
    "PurgeResponse": {
      "properties": {
        "status": {
          "type": "string"
        }
      },
      "required": [
        "status"
      ]
    },
    "ServiceBusStatusResponse": {
      "properties": {
        "status": {
          "type": "string"
        },
        "subscriptions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SubscriptionMetrics"
          }
        }
      },
      "required": [
        "status"
      ]
    },
    "SubscriptionMetrics": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the subsciption (prefixed with the topic name)"
        },
        "message_count": {
          "type": "number",
          "description": "The number of messages in the subscription"
        }
      },
      "required": [
        "name",
        "message_count"
      ]
    },
    "TeamUserResponse": {
      "properties": {
        "email": {
          "description": "The email address of the user",
          "type": "string"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "name": {
          "description": "The unique name that is used to identify the user.",
          "type": "string"
        },
        "role": {
          "description": "The role of the user has within the team",
          "enum": [
            "maintainer",
            "collaborator"
          ]
        }
      },
      "required": [
        "email",
        "display_name",
        "name",
        "role"
      ]
    },
    "UserAuthResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the user",
          "type": "string",
          "format": "uuid"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "email": {
          "description": "The email address of the user",
          "type": "string"
        },
        "external_provider": {
          "description": "The name of the external auth provider",
          "type": "string"
        },
        "external_user_id": {
          "description": "The user ID given by the external provider",
          "type": "string"
        },
        "name": {
          "description": "The unique name that is used to identify the user",
          "type": "string"
        },
        "origin": {
          "description": "The creation origin of this user",
          "type": "string",
          "enum": [
            "appcenter",
            "hockeyapp",
            "codepush"
          ]
        }
      },
      "required": [
        "id",
        "display_name",
        "email",
        "name",
        "origin"
      ]
    },
    "UserLiteProfileResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the user",
          "type": "string",
          "format": "uuid"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "email": {
          "description": "The email address of the user",
          "type": "string"
        }
      },
      "required": [
        "id",
        "display_name",
        "email"
      ]
    },
    "UserNameAvailabilityResponse": {
      "properties": {
        "available": {
          "description": "The availability status of the requested user name",
          "type": "boolean"
        },
        "name": {
          "description": "The requested user name",
          "type": "string"
        }
      },
      "required": [
        "available",
        "name"
      ]
    },
    "AppIntegration": {
      "properties": {
        "app_id": {
          "description": "app id",
          "type": "string",
          "format": "uuid"
        },
        "state": {
          "description": "integration state",
          "type": "string"
        },
        "provider": {
          "description": "provider type",
          "type": "string"
        }
      },
      "required": [
        "app_id",
        "state",
        "provider"
      ]
    },
    "AppIntegrationResponse": {
      "properties": {
        "app_id": {
          "description": "app id",
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "app_id"
      ]
    },
    "AppMembershipsResponse": {
      "properties": {
        "app_origin": {
          "type": "string",
          "description": "The app's origin"
        },
        "memberships": {
          "type": "array",
          "description": "An array of all ways a user has access to the app, based on the app_memberships table.",
          "items": {
            "properties": {
              "app_id": {
                "type": "string"
              },
              "user_id": {
                "type": "string"
              },
              "permissions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "origin": {
                "type": "string",
                "enum": [
                  "appcenter",
                  "hockeyapp",
                  "codepush",
                  "testcloud",
                  "hockeyapp-dogfood"
                ]
              },
              "source_type": {
                "type": "string",
                "enum": [
                  "user",
                  "org",
                  "distribution_group",
                  "team",
                  "release"
                ]
              }
            }
          }
        }
      }
    },
    "UserProfileResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the user",
          "type": "string",
          "format": "uuid"
        },
        "avatar_url": {
          "description": "The avatar URL of the user",
          "type": "string"
        },
        "can_change_password": {
          "description": "User is required to send an old password in order to change the password.",
          "type": "boolean"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        },
        "email": {
          "description": "The email address of the user",
          "type": "string"
        },
        "name": {
          "description": "The unique name that is used to identify the user.",
          "type": "string"
        },
        "permissions": {
          "description": "The permissions the user has for the app",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "manager",
              "developer",
              "viewer",
              "tester"
            ]
          }
        },
        "origin": {
          "description": "The creation origin of this user",
          "type": "string",
          "enum": [
            "appcenter",
            "hockeyapp",
            "codepush"
          ]
        }
      },
      "required": [
        "id",
        "display_name",
        "email",
        "name",
        "origin"
      ]
    },
    "UserProfileResponseInternal": {
      "allOf": [
        {
          "$ref": "#/definitions/UserProfileResponse"
        },
        {
          "properties": {
            "feature_flags": {
              "description": "The feature flags that are enabled for this app",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "admin_role": {
              "description": "The new admin_role",
              "type": "string",
              "enum": [
                "superAdmin",
                "admin",
                "devOps",
                "customerSupport",
                "notAdmin"
              ]
            },
            "settings": {
              "description": "The user's settings",
              "properties": {
                "marketing_opt_in": {
                  "description": "The marketing opt-in setting",
                  "type": "string"
                }
              }
            }
          }
        }
      ]
    },
    "UserProfileResponseManagement": {
      "allOf": [
        {
          "$ref": "#/definitions/UserProfileResponseInternal"
        },
        {
          "properties": {
            "updated_at": {
              "description": "The date when the app was last updated",
              "type": "string"
            },
            "verified": {
              "description": "A boolean flag that indicates if the user is already verified",
              "type": "boolean"
            }
          }
        }
      ]
    },
    "UserSettingResponse": {
      "description": "A user's setting",
      "properties": {
        "marketing_opt_in": {
          "description": "The marketing opt-in setting",
          "type": "string"
        }
      }
    },
    "Owner": {
      "description": "The information about the app's owner",
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the owner",
          "type": "string",
          "format": "uuid"
        },
        "avatar_url": {
          "description": "The avatar URL of the owner",
          "type": "string"
        },
        "display_name": {
          "description": "The owner's display name",
          "type": "string"
        },
        "email": {
          "description": "The owner's email address",
          "type": "string"
        },
        "name": {
          "description": "The unique name that used to identify the owner",
          "type": "string"
        },
        "type": {
          "description": "The owner type. Can either be 'org' or 'user'",
          "type": "string",
          "enum": [
            "org",
            "user"
          ]
        }
      },
      "required": [
        "id",
        "display_name",
        "name",
        "type"
      ]
    },
    "AADUser": {
      "description": "an AAD user's id and tenant id",
      "properties": {
        "object_id": {
          "description": "the aad user's id",
          "type": "string",
          "format": "uuid"
        },
        "tenant_id": {
          "description": "the aad user's tenant id",
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "object_id",
        "tenant_id"
      ]
    },
    "MSAUser": {
      "description": "an MSA user's hex CID",
      "properties": {
        "hexcid": {
          "description": "the user's CID",
          "type": "string"
        }
      },
      "required": [
        "hexcid"
      ]
    },
    "SharedConnectionPatchRequest": {
      "description": "Shared connection patch request",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "Display name of the shared connection",
          "type": "string"
        },
        "data": {
          "description": "Represents the data for connecting to service",
          "type": "object"
        }
      },
      "required": [
        "data"
      ]
    },
    "SharedConnectionRequest": {
      "description": "SharedConnectionRequest",
      "type": "object",
      "discriminator": "serviceType",
      "properties": {
        "displayName": {
          "description": "display name of shared connection",
          "type": "string"
        },
        "serviceType": {
          "description": "service type of shared connection can be apple|googleplay|jira|applecertificate",
          "type": "string",
          "enum": [
            "apple",
            "jira",
            "googleplay"
          ]
        },
        "credentialType": {
          "description": "credential type of the shared connection. Values can be credentials|certificate",
          "type": "string",
          "enum": [
            "credentials",
            "certificate"
          ],
          "default": "credentials"
        }
      },
      "required": [
        "serviceType"
      ]
    },
    "SharedConnectionResponse": {
      "description": "SharedConnectionResponse",
      "discriminator": "serviceType",
      "type": "object",
      "properties": {
        "id": {
          "description": "id of the shared connection",
          "type": "string"
        },
        "displayName": {
          "description": "display name of shared connection",
          "type": "string"
        },
        "serviceType": {
          "description": "service type of shared connection can be apple|googleplay|jira",
          "type": "string",
          "enum": [
            "apple",
            "jira",
            "googleplay"
          ]
        },
        "credentialType": {
          "description": "the type of the credential",
          "type": "string",
          "enum": [
            "credentials",
            "certificate"
          ]
        },
        "isValid": {
          "description": "whether the credentials are valid or not",
          "type": "boolean"
        },
        "is2FA": {
          "description": "if the account is a 2FA account or not",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "serviceType",
        "credentialType"
      ]
    },
    "PrivateSharedConnectionResponse": {
      "description": "PrivateSharedConnectionResponse",
      "discriminator": "serviceType",
      "type": "object",
      "properties": {
        "id": {
          "description": "id of the shared connection",
          "type": "string"
        },
        "displayName": {
          "description": "display name of shared connection",
          "type": "string"
        },
        "serviceType": {
          "description": "service type of shared connection can be apple|googleplay|jira|applecertificate",
          "type": "string",
          "enum": [
            "apple",
            "jira",
            "googleplay"
          ]
        },
        "isValid": {
          "description": "whether the credentials are valid or not",
          "type": "boolean"
        },
        "is2FA": {
          "description": "if the account is a 2FA account or not",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "serviceType"
      ]
    },
    "AppleConnectionSecretRequest": {
      "description": "Apple connection secrets",
      "discriminator": "credentialType",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionRequest"
        }
      ]
    },
    "AppleCredentialsMultifactorSecretRequest": {
      "description": "Apple connection secrets",
      "allOf": [
        {
          "$ref": "#/definitions/AppleConnectionSecretRequest"
        }
      ],
      "properties": {
        "data": {
          "description": "apple secret details",
          "$ref": "#/definitions/AppleMultifactorSecretDetails"
        }
      },
      "required": [
        "data"
      ]
    },
    "AppleCredentialsSecretRequest": {
      "description": "Apple connection secrets",
      "allOf": [
        {
          "$ref": "#/definitions/AppleConnectionSecretRequest"
        }
      ],
      "properties": {
        "data": {
          "description": "apple secret details",
          "$ref": "#/definitions/AppleSecretDetails"
        }
      },
      "required": [
        "data"
      ]
    },
    "AppleCertificateSecretRequest": {
      "description": "Apple certificate secrets",
      "allOf": [
        {
          "$ref": "#/definitions/AppleConnectionSecretRequest"
        }
      ],
      "properties": {
        "data": {
          "description": "apple secret details",
          "$ref": "#/definitions/AppleCertificateDetails"
        }
      },
      "required": [
        "data"
      ]
    },
    "PrivateAppleSecretResponse": {
      "description": "private Apple connection secrets response",
      "discriminator": "credentialType",
      "allOf": [
        {
          "$ref": "#/definitions/PrivateSharedConnectionResponse"
        }
      ]
    },
    "PrivateAppleCredentialsSecretResponse": {
      "description": "private Apple connection secrets response",
      "allOf": [
        {
          "$ref": "#/definitions/PrivateAppleSecretResponse"
        }
      ],
      "discriminator": "serviceType",
      "properties": {
        "data": {
          "description": "apple secret details",
          "$ref": "#/definitions/AppleSecretDetails"
        }
      },
      "required": [
        "data"
      ]
    },
    "PrivateAppleCertificateSecretResponse": {
      "description": "private Apple connection secrets response",
      "allOf": [
        {
          "$ref": "#/definitions/PrivateAppleSecretResponse"
        }
      ],
      "properties": {
        "data": {
          "description": "apple secret details",
          "$ref": "#/definitions/AppleCertificateSecretDetails"
        }
      },
      "required": [
        "data"
      ]
    },
    "AppleSecretDetails": {
      "description": "Apple secret details",
      "type": "object",
      "properties": {
        "username": {
          "description": "username to connect to apple store.",
          "type": "string"
        },
        "authCode": {
          "description": "6 digit auth code",
          "type": "string",
          "minLength": 6,
          "maxLength": 6
        },
        "password": {
          "description": "password to connect to apple store.",
          "type": "string"
        }
      }
    },
    "AppleMultifactorSecretDetails": {
      "description": "Apple secret details",
      "type": "object",
      "properties": {
        "username": {
          "description": "username to connect to apple store.",
          "type": "string"
        },
        "password": {
          "description": "password to connect to apple store.",
          "type": "string"
        },
        "authCode": {
          "description": "The 6 digit Apple OTP for Multifactor accounts",
          "type": "string"
        },
        "appSpecificPassword": {
          "description": "The app specific password required for app publishing for 2FA accounts",
          "type": "string"
        }
      },
      "required": [
        "username",
        "password",
        "authCode"
      ]
    },
    "AppleSecretDetailsResponse": {
      "description": "Apple secret details",
      "type": "object",
      "properties": {
        "username": {
          "description": "username to connect to apple store",
          "type": "string"
        }
      },
      "required": [
        "username"
      ]
    },
    "AppleConnectionSecretResponse": {
      "description": "Apple connection secrets",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionResponse"
        }
      ],
      "discriminator": "serviceType",
      "properties": {
        "data": {
          "description": "apple secret details",
          "$ref": "#/definitions/AppleSecretDetailsResponse"
        }
      },
      "required": [
        "data"
      ]
    },
    "AppleConnectionNonSecretResponse": {
      "description": "Apple connection secrets",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionResponse"
        }
      ],
      "discriminator": "credentialType"
    },
    "AppleCredentialNonSecretDetailsResponse": {
      "description": "Apple credentials non-secret details",
      "allOf": [
        {
          "$ref": "#/definitions/AppleConnectionNonSecretResponse"
        }
      ],
      "properties": {
        "data": {
          "description": "Apple credentials non-secret data",
          "$ref": "#/definitions/AppleSecretDetailsResponse"
        }
      },
      "required": [
        "data"
      ]
    },
    "AppleCertificateNonSecretDetailsResponse": {
      "description": "Apple certificate non-secret details",
      "allOf": [
        {
          "$ref": "#/definitions/AppleConnectionNonSecretResponse"
        }
      ],
      "properties": {
        "data": {
          "description": "apple certificate non-secret details",
          "$ref": "#/definitions/AppleCertificateNonSecretDetails"
        }
      },
      "required": [
        "data"
      ]
    },
    "AppleCertificateSecretDetailsResponse": {
      "description": "Apple connection secrets",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionResponse"
        }
      ],
      "discriminator": "serviceType",
      "properties": {
        "data": {
          "description": "apple certificate secret details.",
          "$ref": "#/definitions/AppleCertificateSecretDetails"
        }
      },
      "required": [
        "data"
      ]
    },
    "AppleCertificateSecretDetails": {
      "description": "Apple Certificate Secret Details",
      "type": "object",
      "properties": {
        "base64Certificate": {
          "description": "The certificate contents in base 64 encoded string",
          "type": "string"
        },
        "password": {
          "description": "The password for the certificate",
          "type": "string"
        },
        "displayName": {
          "description": "The display name (CN) of the certificate",
          "type": "string"
        },
        "certificateValidityStartDate": {
          "description": "The date-time from which the certificate is valid",
          "type": "string"
        },
        "certificateValidityEndDate": {
          "description": "The date-time till which the certificate is valid",
          "type": "string"
        }
      },
      "required": [
        "base64Certificate",
        "password",
        "displayName",
        "certificateValidityStartDate",
        "certificateValidityEndDate"
      ]
    },
    "AppleCertificateDetails": {
      "description": "Apple Certificate Details",
      "type": "object",
      "properties": {
        "base64Certificate": {
          "description": "The certificate contents in base 64 encoded string",
          "type": "string"
        },
        "password": {
          "description": "The password for the certificate",
          "type": "string"
        }
      },
      "required": [
        "base64Certificate",
        "password"
      ]
    },
    "AppleCertificateNonSecretDetails": {
      "description": "Apple Certificate Secret Details",
      "type": "object",
      "properties": {
        "displayName": {
          "description": "The display name (CN) of the certificate",
          "type": "string"
        },
        "certificateValidityStartDate": {
          "description": "The date-time from which the certificate is valid",
          "type": "string"
        },
        "certificateValidityEndDate": {
          "description": "The date-time till which the certificate is valid",
          "type": "string"
        }
      },
      "required": [
        "displayName",
        "certificateValidityStartDate",
        "certificateValidityEndDate"
      ]
    },
    "JiraConnectionSecretRequest": {
      "description": "Jira connection secrets",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionRequest"
        }
      ],
      "properties": {
        "data": {
          "description": "jira secret details",
          "$ref": "#/definitions/JiraSecretDetails"
        }
      },
      "required": [
        "data"
      ]
    },
    "JiraConnectionSecretResponse": {
      "description": "Jira connection secrets",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionResponse"
        }
      ],
      "discriminator": "serviceType",
      "properties": {
        "data": {
          "description": "jira secret details",
          "$ref": "#/definitions/JiraSecretDetailsResponse"
        }
      },
      "required": [
        "data"
      ]
    },
    "PrivateJiraConnectionSecretResponse": {
      "description": "private Jira connection secrets response",
      "allOf": [
        {
          "$ref": "#/definitions/PrivateSharedConnectionResponse"
        }
      ],
      "discriminator": "serviceType",
      "properties": {
        "data": {
          "description": "jira secret details",
          "$ref": "#/definitions/JiraSecretDetails"
        }
      },
      "required": [
        "data"
      ]
    },
    "JiraSecretDetails": {
      "description": "Jira secret details",
      "type": "object",
      "properties": {
        "baseUrl": {
          "description": "baseUrl to connect to jira instance",
          "type": "string"
        },
        "username": {
          "description": "username to connect to jira instance",
          "type": "string"
        },
        "password": {
          "description": "password to connect to jira instance",
          "type": "string"
        }
      },
      "required": [
        "baseUrl",
        "username",
        "password"
      ]
    },
    "JiraSecretDetailsResponse": {
      "description": "Jira secret details",
      "type": "object",
      "properties": {
        "baseUrl": {
          "description": "baseUrl to connect to jira instance",
          "type": "string"
        },
        "username": {
          "description": "username to connect to jira instance",
          "type": "string"
        }
      },
      "required": [
        "baseUrl",
        "username"
      ]
    },
    "GooglePlayConnectionSecretRequest": {
      "description": "Google Play connection secrets this should be the JSON file data which is provided by google play",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionRequest"
        }
      ],
      "properties": {
        "data": {
          "description": "google secret details",
          "type": "object"
        }
      },
      "required": [
        "data"
      ]
    },
    "GooglePlayConnectionSecretResponse": {
      "description": "Google Play connection secrets",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionResponse"
        }
      ],
      "discriminator": "serviceType",
      "properties": {
        "data": {
          "description": "google play secret details",
          "type": "object"
        }
      },
      "required": [
        "data"
      ]
    },
    "PrivateGooglePlayConnectionSecretResponse": {
      "description": "private google connection secrets response",
      "allOf": [
        {
          "$ref": "#/definitions/PrivateSharedConnectionResponse"
        }
      ],
      "discriminator": "serviceType",
      "properties": {
        "data": {
          "description": "google secret details",
          "type": "object"
        }
      },
      "required": [
        "data"
      ]
    },
    "GooglePlayConnectionNonSecretResponse": {
      "description": "Google Play non-secret data",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionResponse"
        }
      ],
      "discriminator": "credentialType"
    },
    "GooglePlayCredentialNonSecretDetailsResponse": {
      "description": "Google Play credentials non-secret details",
      "allOf": [
        {
          "$ref": "#/definitions/GooglePlayConnectionNonSecretResponse"
        }
      ],
      "properties": {
        "data": {
          "description": "Google Play credentials non-secret details",
          "type": "object"
        }
      },
      "required": [
        "data"
      ]
    },
    "JiraConnectionNonSecretResponse": {
      "description": "Jira non-secret data",
      "allOf": [
        {
          "$ref": "#/definitions/SharedConnectionResponse"
        }
      ],
      "discriminator": "credentialType"
    },
    "JiraCredentialNonSecretDetailsResponse": {
      "description": "Jira credentials non-secret details",
      "allOf": [
        {
          "$ref": "#/definitions/GooglePlayConnectionNonSecretResponse"
        }
      ],
      "properties": {
        "data": {
          "description": "Jira credentials non-secret details",
          "$ref": "#/definitions/JiraSecretDetailsResponse"
        }
      },
      "required": [
        "data"
      ]
    },
    "ApiTokenResponsev2": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the api token",
          "format": "uuid",
          "type": "string"
        },
        "created_at": {
          "description": "The creation time",
          "type": "string"
        },
        "scope": {
          "description": "The token's scope. A list of allowed roles.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "all",
              "in_app_update",
              "viewer"
            ]
          }
        },
        "encrypted_token": {
          "description": "The encrypted value of a token. This value will only be returned for token of type in_app_update.",
          "type": "string"
        },
        "description": {
          "description": "The description of the token",
          "type": "string"
        }
      },
      "required": [
        "id",
        "created_at"
      ]
    },
    "UserDataResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the user",
          "format": "uuid",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the user",
          "type": "string"
        },
        "name": {
          "description": "The name of the user",
          "type": "string"
        },
        "avatar_url": {
          "description": "The url at which the user's avatar can be reached",
          "type": "string"
        }
      }
    },
    "ErrorDetailsv2": {
      "properties": {
        "code": {
          "type": "string",
          "enum": [
            "BadRequest",
            "Conflict",
            "NotAcceptable",
            "NotFound",
            "InternalServerError",
            "Unauthorized"
          ]
        },
        "message": {
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    },
    "ErrorResponsev2": {
      "properties": {
        "error": {
          "$ref": "#/definitions/ErrorDetailsv2"
        }
      },
      "required": [
        "error"
      ],
      "type": "object"
    },
    "FileAsset": {
      "properties": {
        "id": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "token": {
          "type": "string"
        },
        "uploadDomain": {
          "type": "string"
        },
        "uploadWindowLocation": {
          "type": "string"
        },
        "urlEncodedToken": {
          "type": "string"
        }
      }
    },
    "SourceRepository": {
      "description": "The source repository",
      "properties": {
        "name": {
          "description": "The repository name",
          "type": "string"
        },
        "clone_url": {
          "description": "URL used to clone the repository",
          "type": "string"
        }
      }
    },
    "SourceRepositories": {
      "description": "A list of source repositories",
      "type": "array",
      "items": {
        "$ref": "#/definitions/SourceRepository"
      }
    },
    "GitHubInstallationLite": {
      "description": "The GitHub Installation",
      "properties": {
        "id": {
          "description": "GitHub Installation Id",
          "type": "number"
        },
        "account": {
          "$ref": "#/definitions/GitHubAccountLite"
        },
        "app_id": {
          "description": "GitHub Installation App Id",
          "type": "number"
        }
      }
    },
    "GitHubAccountLite": {
      "description": "The GitHub Installation",
      "properties": {
        "id": {
          "description": "GitHub Account Id",
          "type": "string"
        },
        "login": {
          "description": "GitHub Account Login Name",
          "type": "string"
        },
        "type": {
          "description": "GitHub Account Type",
          "type": "string"
        },
        "url": {
          "description": "GitHub Account Url",
          "type": "string"
        }
      }
    },
    "GitHubInstallationRepository": {
      "description": "The repository which is accessiable by GitHub App Installation",
      "properties": {
        "name": {
          "description": "The repository name",
          "type": "string"
        },
        "description": {
          "description": "The discription of repository",
          "type": "string"
        },
        "clone_url": {
          "description": "URL used to clone the repository",
          "type": "string"
        },
        "default_branch": {
          "description": "The default branch for the repo",
          "type": "string"
        },
        "language": {
          "description": "The language in the repository",
          "type": "string"
        },
        "updated_at": {
          "description": "The repository updated time",
          "type": "string",
          "format": "dateTime"
        },
        "fork": {
          "description": "Whether the repository is a fork",
          "type": "boolean"
        }
      }
    },
    "GitHubInstallationRepositories": {
      "description": "A list of the repositories which is accessible by GitHub App Installation",
      "type": "array",
      "items": {
        "$ref": "#/definitions/GitHubInstallationRepository"
      }
    },
    "GitHubBillingAccount": {
      "description": "App Center account details from GitHub billing",
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the account",
          "type": "string"
        },
        "display_name": {
          "description": "The account's display name",
          "type": "string"
        },
        "name": {
          "description": "The unique name that used to identify the owner",
          "type": "string"
        },
        "type": {
          "description": "The owner type. Can either be 'org' or 'user'",
          "type": "string",
          "enum": [
            "org",
            "user"
          ]
        }
      },
      "required": [
        "id",
        "display_name",
        "name",
        "type"
      ]
    },
    "GitHubPullRequestLite": {
      "description": "The lite version of GitHub pull request",
      "properties": {
        "head": {
          "$ref": "#/definitions/GitHubBranchLite"
        },
        "base": {
          "$ref": "#/definitions/GitHubBranchLite"
        }
      }
    },
    "GitHubBranchLite": {
      "description": "The lite version of GitHub branch",
      "properties": {
        "ref": {
          "description": "The repository name",
          "type": "string"
        },
        "sha": {
          "description": "The discription of repository",
          "type": "string"
        },
        "repo": {
          "$ref": "#/definitions/GitHubRepositoryLite"
        }
      }
    },
    "GitHubRepositoryLite": {
      "description": "The lite version of GitHub repository",
      "properties": {
        "id": {
          "description": "The repository id",
          "type": "number"
        }
      }
    },
    "IosAppExtensionInfo": {
      "description": "App extension information",
      "properties": {
        "name": {
          "description": "App extension name",
          "type": "string"
        },
        "targetBundleIdentifier": {
          "description": "App extension bundle identifier",
          "type": "string"
        }
      },
      "required": [
        "name",
        "targetBundleIdentifier"
      ]
    },
    "ProvisioningProfileFile": {
      "description": "Provisioning profile fetch and store information",
      "properties": {
        "fileName": {
          "description": "Name of uploaded provisioning profile",
          "type": "string"
        },
        "fileId": {
          "description": "File id from secure file storage",
          "type": "string"
        },
        "uploadId": {
          "description": "Upload id to App Center File Upload Store",
          "type": "string"
        },
        "targetBundleIdentifier": {
          "description": "Target the provisioning profile is used to sign",
          "type": "string"
        }
      }
    },
    "VSTSProfile": {
      "description": "VSTS user profile",
      "properties": {
        "id": {
          "description": "Profile id",
          "type": "string"
        },
        "displayName": {
          "description": "Profile display name",
          "type": "string"
        },
        "publicAlias": {
          "description": "Profile alias",
          "type": "string"
        },
        "emailAddress": {
          "description": "Profile email",
          "type": "string"
        }
      }
    },
    "VSTSProject": {
      "description": "VSTS project",
      "properties": {
        "id": {
          "description": "Project id",
          "type": "string"
        },
        "name": {
          "description": "Project name",
          "type": "string"
        },
        "description": {
          "description": "Project description",
          "type": "string"
        },
        "url": {
          "description": "Project URL",
          "type": "string"
        },
        "state": {
          "description": "Project state",
          "type": "string"
        },
        "visibility": {
          "description": "Project visibility",
          "type": "string"
        }
      }
    },
    "VSTSAccount": {
      "description": "VSTS account with projects list and user info",
      "properties": {
        "accountId": {
          "description": "Account id",
          "type": "string"
        },
        "accountUri": {
          "description": "Account uri",
          "type": "string"
        },
        "accountName": {
          "description": "Account name",
          "type": "string"
        },
        "accountType": {
          "description": "Account type",
          "type": "string"
        },
        "accountStatus": {
          "description": "Account status",
          "type": "string"
        },
        "user": {
          "$ref": "#/definitions/VSTSProfile"
        },
        "projects": {
          "description": "Account projects",
          "type": "array",
          "items": {
            "$ref": "#/definitions/VSTSProject"
          }
        }
      }
    },
    "VSTSAccounts": {
      "description": "A list of VSTS accounts with projects",
      "type": "array",
      "items": {
        "$ref": "#/definitions/VSTSAccount"
      }
    },
    "DownloadContainer": {
      "description": "A download reference",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Download URI"
        }
      },
      "required": [
        "uri"
      ]
    },
    "WebSocketContainer": {
      "description": "A websocket reference",
      "properties": {
        "url": {
          "type": "string",
          "description": "WebSocket URL"
        }
      },
      "required": [
        "url"
      ]
    },
    "XcodeArchiveProject": {
      "properties": {
        "archiveTargetId": {
          "description": "The Id of the target to archive",
          "type": "string"
        },
        "projectName": {
          "description": "The project to archive container name",
          "type": "string"
        },
        "projectPath": {
          "description": "Full path of the target project",
          "type": "string"
        }
      },
      "required": [
        "archiveTargetId",
        "projectName"
      ]
    },
    "XcodeScheme": {
      "properties": {
        "name": {
          "description": "Scheme name",
          "type": "string"
        },
        "hasTestAction": {
          "description": "Does scheme have a test action?",
          "type": "boolean"
        },
        "archiveConfiguration": {
          "description": "Build configuration set in Archive action",
          "type": "string"
        },
        "archiveProject": {
          "$ref": "#/definitions/XcodeArchiveProject"
        }
      },
      "required": [
        "name",
        "hasTestAction"
      ]
    },
    "XcodeToolset": {
      "properties": {
        "xcodeSchemeContainers": {
          "description": "The Xcode scheme containers",
          "type": "array",
          "items": {
            "$ref": "#/definitions/XcodeSchemeContainer"
          }
        }
      },
      "required": [
        "xcodeSchemeContainers"
      ]
    },
    "XcodeSchemeContainer": {
      "properties": {
        "path": {
          "description": "Path to project",
          "type": "string"
        },
        "sharedSchemes": {
          "description": "Project schemes",
          "type": "array",
          "items": {
            "$ref": "#/definitions/XcodeScheme"
          }
        },
        "podfilePath": {
          "description": "Path to CocoaPods file, if present",
          "type": "string"
        },
        "cartfilePath": {
          "description": "Path to Carthage file, if present",
          "type": "string"
        },
        "xcodeProjectSha": {
          "description": "repo object Id of the pbxproject",
          "type": "string"
        },
        "workspaceProjectPaths": {
          "type": "string",
          "description": "Related projects paths for xcworkspace"
        },
        "appExtensionTargets": {
          "description": "Information regarding project app extensions, if present",
          "type": "array",
          "items": {
            "$ref": "#/definitions/IosAppExtensionInfo"
          }
        }
      },
      "required": [
        "path",
        "sharedSchemes"
      ]
    },
    "XamarinToolset": {
      "properties": {
        "xamarinSolutions": {
          "description": "Xamarin solutions for the toolset",
          "type": "array",
          "items": {
            "$ref": "#/definitions/XamarinSolution"
          }
        }
      },
      "required": [
        "xamarinSolutions"
      ]
    },
    "XamarinSolution": {
      "properties": {
        "path": {
          "description": "Path to solution",
          "type": "string"
        },
        "configurations": {
          "description": "Solution configurations",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "defaultConfiguration": {
          "description": "Solution default configuration",
          "type": "string"
        }
      },
      "required": [
        "path",
        "configurations"
      ]
    },
    "AndroidProject": {
      "properties": {
        "androidModules": {
          "description": "Android Gradle modules",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AndroidModule"
          }
        },
        "gradleWrapperPath": {
          "description": "The path of the Gradle wrapper",
          "type": "string"
        }
      },
      "required": [
        "androidModules"
      ]
    },
    "AndroidModule": {
      "properties": {
        "name": {
          "description": "Name of the Android module",
          "type": "string"
        },
        "productFlavors": {
          "description": "The product flavors of the Android module",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "buildVariants": {
          "description": "The detected build variants of the Android module (matrix of product flavor + build type (debug|release))",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "buildTypes": {
          "description": "The detected build types fo the Android module",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "isRoot": {
          "description": "Whether the module is at the root level of the project",
          "type": "boolean"
        }
      },
      "required": [
        "name"
      ]
    },
    "JavaScriptToolset": {
      "properties": {
        "packageJsonPaths": {
          "description": "Paths for detected package.json files",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "javascriptSolutions": {
          "description": "The React Native solutions detected",
          "type": "array",
          "items": {
            "$ref": "#/definitions/JavaScriptSolution"
          }
        }
      },
      "required": [
        "packageJsonPaths"
      ]
    },
    "JavaScriptSolution": {
      "properties": {
        "packageJsonPath": {
          "description": "The path to the detected package.json",
          "type": "string"
        },
        "reactNativeVersion": {
          "description": "Version of React Native from package.json files",
          "type": "string"
        }
      },
      "required": [
        "packageJsonPath"
      ]
    },
    "UWPToolset": {
      "properties": {
        "uwpSolutions": {
          "description": "The UWP solutions detected",
          "type": "array",
          "items": {
            "$ref": "#/definitions/UWPSolution"
          }
        }
      },
      "required": [
        "uwpSolutions"
      ]
    },
    "UWPSolution": {
      "properties": {
        "path": {
          "description": "The path to the UWP solution",
          "type": "string"
        },
        "configurations": {
          "description": "The possible configurations detected for the UWP solution",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "path",
        "configurations"
      ]
    },
    "TestCloudToolset": {
      "properties": {
        "projects": {
          "description": "The TestCloud projects detected",
          "type": "array",
          "items": {
            "$ref": "#/definitions/TestCloudProject"
          }
        }
      },
      "required": [
        "projects"
      ]
    },
    "TestCloudProject": {
      "properties": {
        "path": {
          "description": "The path to the TestCloud project",
          "type": "string"
        },
        "frameworkType": {
          "type": "string",
          "enum": [
            "Appium",
            "Calabash",
            "Espresso",
            "UITest",
            "Generated"
          ]
        },
        "frameworkProperties": {
          "$ref": "#/definitions/TestCloudProjectFrameworkProperties"
        }
      },
      "required": [
        "path",
        "frameworkType"
      ]
    },
    "TestCloudProjectFrameworkProperties": {
      "properties": {
        "configurations": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ToolsetProjects": {
      "description": "A collection of projects for each type of toolset",
      "properties": {
        "commit": {
          "description": "The commit hash of the analyzed commit",
          "type": "string"
        },
        "xcode": {
          "$ref": "#/definitions/XcodeToolset"
        },
        "javascript": {
          "$ref": "#/definitions/JavaScriptToolset"
        },
        "xamarin": {
          "$ref": "#/definitions/XamarinToolset"
        },
        "android": {
          "$ref": "#/definitions/AndroidProject"
        },
        "buildscripts": {
          "$ref": "#/definitions/BuildScripts"
        },
        "uwp": {
          "$ref": "#/definitions/UWPToolset"
        },
        "testcloud": {
          "$ref": "#/definitions/TestCloudToolset"
        }
      }
    },
    "BuildScripts": {
      "description": "A collection of detected pre/post buildscripts for current platform toolset",
      "additionalProperties": {
        "$ref": "#/definitions/ToolsetProject"
      }
    },
    "ToolsetProject": {
      "description": "Abstract platform project",
      "properties": {
        "name": {
          "type": "string"
        },
        "path": {
          "type": "string"
        }
      }
    },
    "BranchStatusCollection": {
      "description": "A collection of branch status",
      "type": "array",
      "items": {
        "$ref": "#/definitions/BranchStatus"
      }
    },
    "BranchStatus": {
      "description": "The branch build status",
      "properties": {
        "configured": {
          "type": "boolean"
        },
        "lastBuild": {
          "$ref": "#/definitions/Build"
        }
      },
      "additionalProperties": {
        "$ref": "#/definitions/BranchProperties"
      },
      "required": [
        "configured"
      ]
    },
    "BranchProperties": {
      "description": "The branch build core properties",
      "properties": {
        "branch": {
          "$ref": "#/definitions/Branch"
        },
        "enabled": {
          "type": "boolean"
        }
      }
    },
    "BranchConfiguration": {
      "description": "The branch build configuration",
      "properties": {
        "id": {
          "type": "integer"
        },
        "trigger": {
          "type": "string",
          "enum": [
            "continous",
            "continuous",
            "manual"
          ]
        },
        "testsEnabled": {
          "type": "boolean"
        },
        "badgeIsEnabled": {
          "type": "boolean"
        },
        "signed": {
          "type": "boolean"
        },
        "toolsets": {
          "$ref": "#/definitions/BranchConfigurationToolsets"
        },
        "artifactVersioning": {
          "$ref": "#/definitions/BranchConfigurationArtifactVersioning"
        }
      },
      "additionalProperties": {
        "$ref": "#/definitions/BranchProperties"
      },
      "required": [
        "id"
      ]
    },
    "BranchConfigurationToolsets": {
      "description": "The branch build configuration for each toolset",
      "properties": {
        "xcode": {
          "$ref": "#/definitions/XcodeBranchConfigurationProperties"
        },
        "javascript": {
          "$ref": "#/definitions/JavaScriptBranchConfigurationProperties"
        },
        "xamarin": {
          "$ref": "#/definitions/XamarinBranchConfigurationProperties"
        },
        "android": {
          "$ref": "#/definitions/AndroidBranchConfigurationProperties"
        }
      }
    },
    "BranchConfigurationArtifactVersioning": {
      "description": "The versioning configuration for artifacts built for this branch",
      "properties": {
        "buildNumberFormat": {
          "type": "string",
          "enum": [
            "buildId",
            "timestamp"
          ]
        }
      }
    },
    "XcodeBranchConfigurationProperties": {
      "description": "Build configuration when Xcode is part of the build steps",
      "properties": {
        "projectOrWorkspacePath": {
          "description": "Xcode project/workspace path",
          "type": "string"
        },
        "podfilePath": {
          "description": "Path to CococaPods file, if present",
          "type": "string"
        },
        "cartfilePath": {
          "description": "Path to Carthage file, if present",
          "type": "string"
        },
        "provisioningProfileEncoded": {
          "type": "string"
        },
        "certificateEncoded": {
          "type": "string"
        },
        "provisioningProfileFileId": {
          "type": "string"
        },
        "certificateFileId": {
          "type": "string"
        },
        "provisioningProfileUploadId": {
          "type": "string"
        },
        "appExtensionProvisioningProfileFiles": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProvisioningProfileFile"
          }
        },
        "certificateUploadId": {
          "type": "string"
        },
        "certificatePassword": {
          "type": "string"
        },
        "scheme": {
          "type": "string"
        },
        "xcodeVersion": {
          "type": "string"
        },
        "provisioningProfileFilename": {
          "type": "string"
        },
        "certificateFilename": {
          "type": "string"
        },
        "teamId": {
          "type": "string"
        },
        "automaticSigning": {
          "type": "boolean"
        },
        "xcodeProjectSha": {
          "type": "string",
          "description": "The selected pbxproject hash to the repositroy"
        },
        "archiveConfiguration": {
          "type": "string",
          "description": "The build configuration of the target to archive"
        },
        "targetToArchive": {
          "type": "string",
          "description": "The target id of the selected scheme to archive"
        }
      },
      "required": [
        "projectOrWorkspacePath",
        "scheme",
        "xcodeVersion"
      ]
    },
    "AndroidBranchConfigurationProperties": {
      "description": "Build configuration for Android projects",
      "properties": {
        "gradleWrapperPath": {
          "description": "Path to the Gradle wrapper script",
          "type": "string",
          "example": "android/gradlew"
        },
        "module": {
          "description": "The Gradle module to build",
          "type": "string",
          "example": "app"
        },
        "buildVariant": {
          "description": "The Android build variant to build",
          "type": "string",
          "example": "release"
        },
        "runTests": {
          "description": "Whether to run unit tests during the build (default)",
          "type": "boolean",
          "default": true
        },
        "runLint": {
          "description": "Whether to run lint checks during the build (default)",
          "type": "boolean",
          "default": true
        },
        "isRoot": {
          "description": "Whether it is the root module or not",
          "type": "boolean",
          "default": true
        },
        "automaticSigning": {
          "description": "Whether to apply automatic signing or not",
          "type": "boolean",
          "default": true
        },
        "keystorePassword": {
          "description": "The password of the keystore",
          "type": "string"
        },
        "keyAlias": {
          "description": "The key alias",
          "type": "string"
        },
        "keyPassword": {
          "description": "The key password",
          "type": "string"
        },
        "keystoreFilename": {
          "description": "The name of the keystore file",
          "type": "string"
        },
        "keystoreEncoded": {
          "description": "The keystore encoded value",
          "type": "string"
        }
      },
      "required": [
        "module",
        "buildVariant"
      ]
    },
    "JavaScriptBranchConfigurationProperties": {
      "description": "Build configuration when React Native, or other JavaScript tech, is part of the build steps",
      "properties": {
        "packageJsonPath": {
          "description": "Path to package.json file for the main project, e.g. \"package.json\" or \"myapp/package.json\"",
          "type": "string"
        },
        "runTests": {
          "description": "Whether to run Jest unit tests, via npm test, during the build",
          "type": "boolean",
          "default": true
        },
        "reactNativeVersion": {
          "description": "Version of React Native from package.json files",
          "type": "string"
        }
      },
      "required": [
        "packageJsonPath"
      ]
    },
    "XamarinBranchConfigurationProperties": {
      "description": "Build configuration for Xamarin projects",
      "properties": {
        "slnPath": {
          "type": "string"
        },
        "isSimBuild": {
          "type": "string"
        },
        "args": {
          "type": "string"
        },
        "configuration": {
          "type": "string"
        },
        "p12File": {
          "type": "string"
        },
        "p12Pwd": {
          "type": "string"
        },
        "provProfile": {
          "type": "string"
        },
        "monoVersion": {
          "type": "string"
        },
        "sdkBundle": {
          "type": "string"
        },
        "symlink": {
          "description": "Symlink of the SDK Bundle and Mono installation.\nThe build will use the associated Mono bundled with related Xamarin SDK. If both symlink and monoVersion or sdkBundle are passed, the symlink is taking precedence. If non-existing symlink is passed, the current stable Mono version will be configured for building.\n",
          "type": "string"
        }
      },
      "required": [
        "slnPath",
        "isSimBuild",
        "args",
        "configuration",
        "p12File",
        "p12Pwd",
        "provProfile"
      ]
    },
    "Branch": {
      "properties": {
        "name": {
          "description": "The branch name",
          "type": "string"
        },
        "commit": {
          "$ref": "#/definitions/Commit"
        }
      },
      "required": [
        "name",
        "commit"
      ]
    },
    "Commit": {
      "properties": {
        "sha": {
          "description": "The commit SHA",
          "type": "string"
        },
        "url": {
          "description": "The URL to the commit",
          "type": "string"
        }
      }
    },
    "CommitDetails": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/Commit"
        },
        {
          "type": "object",
          "properties": {
            "commit": {
              "type": "object",
              "properties": {
                "message": {
                  "description": "Commit message",
                  "type": "string"
                },
                "author": {
                  "type": "object",
                  "properties": {
                    "date": {
                      "description": "Date and time of the commit",
                      "type": "string"
                    },
                    "name": {
                      "description": "Author name",
                      "type": "string"
                    },
                    "email": {
                      "description": "Author's email",
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      ]
    },
    "CommitDetailsList": {
      "description": "A list of commits",
      "type": "array",
      "items": {
        "$ref": "#/definitions/CommitDetails"
      }
    },
    "RepoConfig": {
      "properties": {
        "type": {
          "description": "Type of repository",
          "type": "string"
        },
        "state": {
          "type": "string",
          "enum": [
            "unauthorized",
            "inactive",
            "active"
          ],
          "description": "State of the configuration"
        },
        "repo_url": {
          "type": "string",
          "description": "URL of the repository"
        },
        "id": {
          "type": "string",
          "description": "Repository identifier"
        },
        "user_email": {
          "type": "string",
          "description": "email of user, who linked repository"
        },
        "installation_id": {
          "type": "string",
          "description": "The GitHub Installation id"
        }
      },
      "required": [
        "type",
        "state"
      ]
    },
    "RepoConfigs": {
      "description": "A list of repo configurations",
      "type": "array",
      "items": {
        "$ref": "#/definitions/RepoConfig"
      }
    },
    "RepoInfo": {
      "properties": {
        "repo_url": {
          "type": "string",
          "description": "The repository url"
        }
      },
      "required": [
        "repo_url"
      ]
    },
    "XcodeVersions": {
      "description": "A list of Xcode versions",
      "type": "array",
      "items": {
        "$ref": "#/definitions/XcodeVersion"
      }
    },
    "XcodeVersion": {
      "description": "The Xcode version",
      "properties": {
        "name": {
          "description": "The version name",
          "type": "string"
        },
        "current": {
          "description": "If the Xcode is latest stable",
          "type": "boolean"
        }
      }
    },
    "MonoVersions": {
      "description": "A list of Mono versions",
      "type": "array",
      "items": {
        "$ref": "#/definitions/MonoVersion"
      }
    },
    "MonoVersion": {
      "description": "The Mono version",
      "properties": {
        "name": {
          "description": "The version name",
          "type": "string"
        },
        "current": {
          "description": "If the Mono is latest stable",
          "type": "boolean"
        }
      }
    },
    "XamarinSDKBundles": {
      "description": "A list of Xamarin SDK bundles",
      "type": "array",
      "items": {
        "$ref": "#/definitions/XamarinSDKBundle"
      }
    },
    "XamarinSDKBundle": {
      "description": "The Xamarin SDK bundle",
      "properties": {
        "monoVersion": {
          "description": "The Mono version",
          "type": "string"
        },
        "sdkBundle": {
          "description": "The Xamarin SDK version",
          "type": "string"
        },
        "current": {
          "description": "If the SDK is latest stable",
          "type": "boolean"
        },
        "stable": {
          "description": "If the SDK is stable",
          "type": "boolean"
        },
        "xcodeVersions": {
          "description": "Specific for iOS SDK. A list of Xcode versions supported by current SDK version",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "Builds": {
      "description": "A list of builds",
      "type": "array",
      "items": {
        "$ref": "#/definitions/Build"
      }
    },
    "BuildParams": {
      "properties": {
        "sourceVersion": {
          "type": "string",
          "description": "Version to build which represents the full Git commit reference",
          "example": "1d71331f19e6830dbf99aa2c53cb264e4a490bab"
        },
        "debug": {
          "type": "boolean",
          "description": "Run build in debug mode"
        }
      }
    },
    "Build": {
      "properties": {
        "id": {
          "description": "The build ID",
          "type": "integer",
          "minimum": 0,
          "exclusiveMinimum": true
        },
        "buildNumber": {
          "description": "The build number",
          "type": "string"
        },
        "queueTime": {
          "description": "The time the build was queued",
          "type": "string",
          "format": "dateTime"
        },
        "startTime": {
          "description": "The time the build was started",
          "type": "string",
          "format": "dateTime"
        },
        "finishTime": {
          "description": "The time the build was finished",
          "type": "string",
          "format": "dateTime"
        },
        "lastChangedDate": {
          "description": "The time the build status was last changed",
          "type": "string",
          "format": "dateTime"
        },
        "status": {
          "description": "The build status",
          "type": "string"
        },
        "result": {
          "description": "The build result",
          "type": "string"
        },
        "sourceBranch": {
          "description": "The source branch name",
          "type": "string"
        },
        "sourceVersion": {
          "description": "The source SHA",
          "type": "string"
        }
      },
      "required": [
        "id",
        "buildNumber",
        "queueTime",
        "status",
        "result",
        "sourceBranch",
        "sourceVersion"
      ]
    },
    "BuildPatch": {
      "properties": {
        "status": {
          "description": "The build status; used to cancel builds",
          "type": "string",
          "enum": [
            "cancelling"
          ]
        }
      }
    },
    "BuildLog": {
      "properties": {
        "value": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "DistributionRequest": {
      "properties": {
        "destinations": {
          "description": "Array of objects {id:string, type:string} with \"id\" being the distribution group ID, store ID, or tester email, and \"type\" being \"group\", \"store\", or \"tester\"",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DestinationDetails"
          }
        },
        "releaseNotes": {
          "type": "string",
          "description": "The release notes"
        },
        "mandatoryUpdate": {
          "type": "boolean"
        },
        "notifyTesters": {
          "type": "boolean",
          "default": true
        }
      }
    },
    "DistributionResponse": {
      "properties": {
        "status": {
          "type": "string",
          "description": "Status of the Request"
        },
        "upload_id": {
          "type": "string",
          "description": "A unique ID of the upload"
        }
      }
    },
    "BuildServiceStatus": {
      "properties": {
        "status": {
          "type": "string"
        },
        "service": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "valid_until": {
          "type": "integer"
        },
        "os": {
          "type": "string"
        }
      }
    },
    "BuildAgentQueue": {
      "required": [
        "queue"
      ],
      "properties": {
        "queue": {
          "type": "string"
        }
      }
    },
    "ValidationErrorResponse": {
      "required": [
        "id",
        "code",
        "message"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "BuildAgentQueuesResponse": {
      "description": "A list of queues configured in build definitions",
      "type": "array",
      "items": {
        "$ref": "#/definitions/BuildAgentQueueResponse"
      }
    },
    "BuildAgentQueueResponse": {
      "description": "Queue configured in build definition",
      "properties": {
        "buildDefinition": {
          "description": "Name of the build definition",
          "type": "string"
        },
        "name": {
          "description": "Name of the queue",
          "type": "string"
        }
      }
    },
    "AgentQueuesResponse": {
      "description": "A list of agent queues",
      "type": "array",
      "items": {
        "$ref": "#/definitions/AgentQueueResponse"
      }
    },
    "AgentQueueResponse": {
      "description": "Agent queue",
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "AppBuildFeatures": {
      "description": "A list of supported features",
      "type": "array",
      "items": {
        "$ref": "#/definitions/AppBuildFeature"
      }
    },
    "AppBuildFeature": {
      "description": "supported feature",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "boolean"
        }
      }
    },
    "DestinationDetails": {
      "description": "Destination details for distributing build releases",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "store",
            "group",
            "tester"
          ]
        }
      },
      "required": [
        "id",
        "type"
      ]
    },
    "FileValidationDetails": {
      "description": "Additional details required for file validation",
      "properties": {
        "p12password": {
          "type": "string"
        },
        "certificateUploadId": {
          "type": "string"
        }
      },
      "required": [
        "p12password"
      ]
    },
    "BuildConcurrencyResponse": {
      "description": "Number of pipelines",
      "properties": {
        "quantity": {
          "description": "The number of pipelines set by the billing plan",
          "type": "number"
        },
        "committed_quantity": {
          "description": "The number of pipelines committed, which can be equal or greater than the number from the billing plan",
          "type": "number"
        }
      }
    },
    "CreateReleaseUploadRequest": {
      "properties": {
        "file_extension": {
          "description": "The file extension of the uploaded file",
          "type": "string",
          "enum": [
            "ipa",
            "apk",
            "msi",
            "xap",
            "appx",
            "appxbundle",
            "msix",
            "msixbundle",
            "appxupload",
            "msixupload",
            "app.zip",
            "dmg",
            "pkg"
          ]
        }
      },
      "required": [
        "file_extension"
      ]
    },
    "CreateReleaseUploadResponse": {
      "properties": {
        "id": {
          "description": "The ID for the newly created upload. It is going to be required later in the process.",
          "type": "string",
          "format": "uuid"
        },
        "upload_url": {
          "description": "The URL used to upload the release.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "upload_url"
      ]
    },
    "GetReleaseStatusResponse": {
      "properties": {
        "id": {
          "description": "The ID for the upload.",
          "type": "string",
          "format": "uuid"
        },
        "upload_url": {
          "description": "The URL used to upload the release.",
          "type": "string"
        },
        "upload_status": {
          "description": "The current upload status.",
          "type": "string",
          "enum": [
            "uploadStarted",
            "uploadFinished",
            "readyToBePublished",
            "malwareDetected",
            "error"
          ]
        },
        "error_details": {
          "description": "Details describing what went wrong processing the upload. Will only be set if status = 'error'.",
          "type": "string"
        },
        "release_distinct_id": {
          "description": "The distinct ID of the release. Will only be set when the status = 'readyToBePublished'.",
          "type": "number"
        },
        "release_url": {
          "description": "The URL of the release. Will only be set when the status = 'readyToBePublished'."
        }
      },
      "required": [
        "id",
        "upload_url",
        "upload_status"
      ]
    },
    "PatchReleaseUploadStatusRequest": {
      "properties": {
        "upload_status": {
          "description": "The new status of the release upload",
          "type": "string",
          "enum": [
            "uploadFinished",
            "uploadCanceled"
          ]
        }
      },
      "required": [
        "upload_status"
      ]
    },
    "PatchReleaseUploadStatusResponse": {
      "properties": {
        "id": {
          "description": "The ID for the upload.",
          "type": "string",
          "format": "uuid"
        },
        "upload_status": {
          "description": "The current upload status.",
          "type": "string",
          "enum": [
            "uploadStarted",
            "uploadFinished",
            "uploadCanceled",
            "readyToBePublished",
            "malwareDetected",
            "error"
          ]
        }
      },
      "required": [
        "id",
        "upload_status"
      ]
    },
    "TesterAppWithReleaseResponse": {
      "properties": {
        "id": {
          "description": "The unique ID (UUID) of the app",
          "type": "string"
        },
        "release": {
          "$ref": "#/definitions/TesterAppRelease"
        },
        "name": {
          "description": "The app's name.",
          "type": "string"
        },
        "display_name": {
          "description": "The app's display name.",
          "type": "string"
        },
        "description": {
          "description": "The description of the app",
          "type": "string"
        },
        "icon_url": {
          "description": "A URL to the app's icon.",
          "type": "string"
        },
        "os": {
          "description": "The app's os.",
          "type": "string"
        },
        "owner": {
          "description": "The information about the app's owner",
          "type": "object",
          "properties": {
            "id": {
              "description": "The unique id (UUID) of the owner",
              "type": "string"
            },
            "avatar_url": {
              "description": "The avatar URL of the owner",
              "type": "string"
            },
            "display_name": {
              "description": "The owner's display name",
              "type": "string"
            },
            "email": {
              "description": "The owner's email address",
              "type": "string"
            },
            "name": {
              "description": "The unique name that used to identify the owner",
              "type": "string"
            },
            "type": {
              "description": "The owner type. Can either be 'org' or 'user'",
              "type": "string",
              "enum": [
                "org",
                "user"
              ]
            }
          }
        }
      }
    },
    "TesterAppRelease": {
      "allOf": [
        {
          "$ref": "#/definitions/DistributionGroupRelease"
        },
        {
          "type": "object",
          "properties": {
            "size": {
              "description": "The release's size in bytes.",
              "type": "integer"
            },
            "install_url": {
              "description": "The href required to install a release on a mobile device. On iOS devices will be prefixed with `itms-services://?action=download-manifest&url=`",
              "type": "string"
            },
            "release_notes": {
              "description": "The release's release notes.",
              "type": "string"
            }
          },
          "required": [
            "size"
          ]
        }
      ]
    },
    "SendNotificationRequest": {
      "properties": {
        "userIds": {
          "description": "user list to send email notification",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "userIds"
      ]
    },
    "UserInteractionMetricsResponse": {
      "description": "Response for retrieving user interaction metrics.",
      "properties": {
        "less_than_100_apps": {
          "description": "check if the user has less than 100 apps.",
          "type": "boolean"
        },
        "has_more_than_1_release": {
          "description": "check if the user's whole apps has more than 1 releases.",
          "type": "boolean"
        }
      }
    },
    "ReleaseUpdateResponse": {
      "description": "Response for updating a release",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "mandatory_update": {
          "type": "boolean"
        },
        "release_notes": {
          "type": "string"
        },
        "provisioning_status_url": {
          "type": "string"
        },
        "destinations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "ReleaseDetailsUpdateResponse": {
      "description": "Response for updating release details",
      "properties": {
        "release_notes": {
          "type": "string"
        }
      }
    },
    "ReleaseProvisionResponse": {
      "description": "Response for provisioning a release",
      "properties": {
        "status_url": {
          "description": "The url to check provisioning status.",
          "type": "string"
        }
      }
    },
    "PrivateReleaseDetailsResponse": {
      "description": "Details of an uploaded release",
      "properties": {
        "id": {
          "description": "ID identifying this unique release.",
          "type": "integer"
        },
        "status": {
          "description": "OBSOLETE. Will be removed in next version. The availability concept is now replaced with distributed. Any 'available' release will be associated with the default distribution group of an app.</br>\nThe release state.<br>\n<b>available</b>: The uploaded release has been distributed.<br>\n<b>unavailable</b>: The uploaded release is not visible to the user. <br>\n",
          "type": "string",
          "enum": [
            "available",
            "unavailable"
          ]
        },
        "app_name": {
          "description": "The app's name (extracted from the uploaded release).",
          "type": "string"
        },
        "app_display_name": {
          "description": "The app's display name.",
          "type": "string"
        },
        "version": {
          "description": "The release's version.<br>\nFor iOS: CFBundleVersion from info.plist.\nFor Android: android:versionCode from AppManifest.xml.\n",
          "type": "string"
        },
        "short_version": {
          "description": "The release's short version.<br>\nFor iOS: CFBundleShortVersionString from info.plist.\nFor Android: android:versionName from AppManifest.xml.\n",
          "type": "string"
        },
        "release_notes": {
          "description": "The release's release notes.",
          "type": "string"
        },
        "provisioning_profile_name": {
          "description": "The release's provisioning profile name.",
          "type": "string"
        },
        "provisioning_profile_type": {
          "description": "The type of the provisioning profile for the requested app version.",
          "type": "string",
          "enum": [
            "adhoc",
            "enterprise",
            "other"
          ]
        },
        "is_provisioning_profile_syncing": {
          "description": "A flag that determines whether the release's provisioning profile is still extracted or not.",
          "type": "boolean"
        },
        "size": {
          "description": "The release's size in bytes.",
          "type": "integer"
        },
        "min_os": {
          "description": "The release's minimum required operating system.",
          "type": "string"
        },
        "device_family": {
          "description": "The release's device family.",
          "type": "string"
        },
        "android_min_api_level": {
          "description": "The release's minimum required Android API level.",
          "type": "string"
        },
        "bundle_identifier": {
          "description": "The identifier of the apps bundle.",
          "type": "string"
        },
        "fingerprint": {
          "description": "MD5 checksum of the release binary.",
          "type": "string"
        },
        "uploaded_at": {
          "description": "UTC time in ISO 8601 format of the uploaded time.",
          "type": "string"
        },
        "download_url": {
          "description": "The URL that hosts the binary for this release.",
          "type": "string"
        },
        "app_icon_url": {
          "description": "A URL to the app's icon.",
          "type": "string"
        },
        "install_url": {
          "description": "The href required to install a release on a mobile device. On iOS devices will be prefixed with `itms-services://?action=download-manifest&url=`",
          "type": "string"
        },
        "distribution_group_id": {
          "description": "the destination where release is distributed",
          "type": "string"
        },
        "publishing_status": {
          "description": "the publishing status of the distributed release",
          "type": "string"
        },
        "destination_type": {
          "description": "The destination type.<br>\n<b>group</b>: The release distributed to internal groups and distribution_groups details will be returned.<br>\n<b>store</b>: The release distributed to external stores and distribution_stores details will be returned. <br>\n",
          "type": "string",
          "enum": [
            "group",
            "store"
          ]
        }
      }
    },
    "PrivateBasicReleaseDetailsResponse": {
      "description": "Basic information on a release for private apis",
      "properties": {
        "id": {
          "description": "ID identifying this unique release.",
          "type": "integer"
        },
        "version": {
          "description": "The release's version.<br>\nFor iOS: CFBundleVersion from info.plist.<br>\nFor Android: android:versionCode from AppManifest.xml.\n",
          "type": "string"
        },
        "short_version": {
          "description": "The release's short version.<br>\nFor iOS: CFBundleShortVersionString from info.plist.<br>\nFor Android: android:versionName from AppManifest.xml.\n",
          "type": "string"
        },
        "uploaded_at": {
          "description": "UTC time in ISO 8601 format of the uploaded time.",
          "type": "string"
        },
        "distribution_group_id": {
          "description": "the destination id of release where it is distributed.",
          "type": "string"
        },
        "destination_type": {
          "description": "The destination type.<br>\n<b>group</b>: The release distributed to internal groups and distribution_groups details will be returned.<br>\n<b>store</b>: The release distributed to external stores and distribution_stores details will be returned. <br>\n",
          "type": "string",
          "enum": [
            "group",
            "store"
          ]
        },
        "is_latest": {
          "description": "Indicates if this is the latest release in the group.",
          "type": "boolean"
        },
        "mandatory_update": {
          "description": "A boolean which determines whether the release is a mandatory update or not.",
          "type": "boolean"
        },
        "publishing_status": {
          "description": "the publishing status of the distributed release",
          "type": "string"
        }
      }
    },
    "DistributionGroupReleasesResponse": {
      "description": "Response for getting a list of releases in a distribution group",
      "type": "array",
      "items": {
        "$ref": "#/definitions/DistributionGroupRelease"
      }
    },
    "DistributionGroupRelease": {
      "description": "Response for getting a list of releases in a distribution group",
      "type": "object",
      "properties": {
        "id": {
          "description": "ID identifying this unique release.",
          "type": "integer"
        },
        "version": {
          "description": "The release's version.<br>\nFor iOS: CFBundleVersion from info.plist.<br>\nFor Android: android:versionCode from AppManifest.xml.\n",
          "type": "string"
        },
        "short_version": {
          "description": "The release's short version.<br>\nFor iOS: CFBundleShortVersionString from info.plist.<br>\nFor Android: android:versionName from AppManifest.xml.\n",
          "type": "string"
        },
        "mandatory_update": {
          "description": "A boolean which determines whether the release is a mandatory update or not.",
          "type": "boolean"
        },
        "uploaded_at": {
          "description": "UTC time in ISO 8601 format of the uploaded time.",
          "type": "string"
        },
        "enabled": {
          "description": "This value determines the whether a release currently is enabled or disabled.",
          "type": "boolean"
        }
      }
    },
    "BasicReleaseDetailsResponse": {
      "description": "Basic information on a release",
      "properties": {
        "id": {
          "description": "ID identifying this unique release.",
          "type": "integer"
        },
        "version": {
          "description": "The release's version.<br>\nFor iOS: CFBundleVersion from info.plist.<br>\nFor Android: android:versionCode from AppManifest.xml.\n",
          "type": "string"
        },
        "short_version": {
          "description": "The release's short version.<br>\nFor iOS: CFBundleShortVersionString from info.plist.<br>\nFor Android: android:versionName from AppManifest.xml.\n",
          "type": "string"
        },
        "enabled": {
          "description": "This value determines the whether a release currently is enabled or disabled.",
          "type": "boolean"
        },
        "uploaded_at": {
          "description": "UTC time in ISO 8601 format of the uploaded time.",
          "type": "string"
        },
        "destination_type": {
          "description": "OBSOLETE. Will be removed in next version. The destination type.<br>\n<b>group</b>: The release distributed to internal groups and distribution_groups details will be returned.<br>\n<b>store</b>: The release distributed to external stores and distribution_stores details will be returned. <br>\n",
          "type": "string",
          "enum": [
            "group",
            "store"
          ]
        },
        "distribution_groups": {
          "description": "OBSOLETE. Will be removed in next version. A list of distribution groups that are associated with this release.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DistributionGroup"
          }
        },
        "distribution_stores": {
          "description": "OBSOLETE. Will be removed in next version. A list of distribution stores that are associated with this release.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DistributionStore"
          }
        },
        "destinations": {
          "description": "A list of distribution groups or stores.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Destination"
          }
        },
        "build": {
          "$ref": "#/definitions/BuildInfo"
        }
      }
    },
    "ReleaseDetailsResponse": {
      "description": "Details of an uploaded release",
      "properties": {
        "id": {
          "description": "ID identifying this unique release.",
          "type": "integer"
        },
        "app_name": {
          "description": "The app's name (extracted from the uploaded release).",
          "type": "string"
        },
        "app_display_name": {
          "description": "The app's display name.",
          "type": "string"
        },
        "version": {
          "description": "The release's version.<br>\nFor iOS: CFBundleVersion from info.plist.\nFor Android: android:versionCode from AppManifest.xml.\n",
          "type": "string"
        },
        "short_version": {
          "description": "The release's short version.<br>\nFor iOS: CFBundleShortVersionString from info.plist.\nFor Android: android:versionName from AppManifest.xml.\n",
          "type": "string"
        },
        "release_notes": {
          "description": "The release's release notes.",
          "type": "string"
        },
        "provisioning_profile_name": {
          "description": "The release's provisioning profile name.",
          "type": "string"
        },
        "provisioning_profile_type": {
          "description": "The type of the provisioning profile for the requested app version.",
          "type": "string",
          "enum": [
            "adhoc",
            "enterprise",
            "other"
          ]
        },
        "provisioning_profile_expiry_date": {
          "description": "expiration date of provisioning profile in UTC format.",
          "type": "string"
        },
        "is_provisioning_profile_syncing": {
          "description": "A flag that determines whether the release's provisioning profile is still extracted or not.",
          "type": "boolean"
        },
        "size": {
          "description": "The release's size in bytes.",
          "type": "integer"
        },
        "min_os": {
          "description": "The release's minimum required operating system.",
          "type": "string"
        },
        "device_family": {
          "description": "The release's device family.",
          "type": "string"
        },
        "android_min_api_level": {
          "description": "The release's minimum required Android API level.",
          "type": "string"
        },
        "bundle_identifier": {
          "description": "The identifier of the apps bundle.",
          "type": "string"
        },
        "fingerprint": {
          "description": "MD5 checksum of the release binary.",
          "type": "string"
        },
        "uploaded_at": {
          "description": "UTC time in ISO 8601 format of the uploaded time.",
          "type": "string"
        },
        "download_url": {
          "description": "The URL that hosts the binary for this release.",
          "type": "string"
        },
        "app_icon_url": {
          "description": "A URL to the app's icon.",
          "type": "string"
        },
        "install_url": {
          "description": "The href required to install a release on a mobile device. On iOS devices will be prefixed with `itms-services://?action=download-manifest&url=`",
          "type": "string"
        },
        "destination_type": {
          "description": "OBSOLETE. Will be removed in next version. The destination type.<br>\n<b>group</b>: The release distributed to internal groups and distribution_groups details will be returned.<br>\n<b>store</b>: The release distributed to external stores and distribution_stores details will be returned.<br>\n<b>tester</b>: The release distributed testers details will be returned.<br>\n",
          "type": "string",
          "enum": [
            "group",
            "store",
            "tester"
          ]
        },
        "distribution_groups": {
          "description": "OBSOLETE. Will be removed in next version. A list of distribution groups that are associated with this release.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DistributionGroupWithoutIsLatest"
          }
        },
        "distribution_stores": {
          "description": "OBSOLETE. Will be removed in next version. A list of distribution stores that are associated with this release.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DistributionStoreWithoutIsLatest"
          }
        },
        "destinations": {
          "description": "A list of distribution groups or stores.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Destination"
          }
        },
        "is_udid_provisioned": {
          "description": "In calls that allow passing `udid` in the query string, this value will hold the provisioning status of that UDID in this release. Will be ignored for non-iOS platforms.",
          "type": "boolean"
        },
        "can_resign": {
          "description": "In calls that allow passing `udid` in the query string, this value determines if a release can be re-signed. When true, after a re-sign, the tester will be able to install the release from his registered devices. Will not be returned for non-iOS platforms.",
          "type": "boolean"
        },
        "build": {
          "$ref": "#/definitions/BuildInfo"
        },
        "enabled": {
          "description": "This value determines the whether a release currently is enabled or disabled.",
          "type": "boolean"
        }
      }
    },
    "ReleaseUploadBeginResponse": {
      "description": "A response containing information pertaining to starting a release upload process",
      "properties": {
        "upload_id": {
          "description": "The ID for the current upload",
          "type": "string"
        },
        "upload_url": {
          "description": "The URL where the client needs to upload the release to",
          "type": "string"
        },
        "asset_id": {
          "description": "The ID for the current upload, reserved for future use",
          "type": "string"
        },
        "asset_domain": {
          "description": "The URL for the current upload, reserved for future use",
          "type": "string"
        },
        "asset_token": {
          "description": "The token for the current upload, reserved for future use",
          "type": "string"
        }
      },
      "required": [
        "upload_id",
        "upload_url"
      ]
    },
    "GDPRValidationRequest": {
      "description": "A request containing a set of release ids to validate",
      "properties": {
        "release_ids": {
          "description": "a list of release ids to validate",
          "type": "array",
          "items": {
            "type": "integer"
          }
        }
      },
      "required": [
        "release_ids"
      ]
    },
    "ReleaseUploadBeginRequest": {
      "description": "A request containing information pertaining to begin a release upload process",
      "properties": {
        "release_id": {
          "description": "The ID of the release.",
          "type": "number"
        }
      }
    },
    "ReleaseUploadEndRequest": {
      "description": "A request containing information pertaining to complete a release upload process",
      "properties": {
        "status": {
          "description": "The desired operation for the upload",
          "type": "string",
          "enum": [
            "committed",
            "aborted"
          ]
        }
      },
      "required": [
        "status"
      ]
    },
    "ReleaseUploadEndResponse": {
      "description": "A response containing information about the uploaded release.",
      "properties": {
        "release_id": {
          "description": "The ID of the release.",
          "type": "number"
        },
        "release_url": {
          "description": "A URL to the new release. If upload was aborted will be null.",
          "type": "string"
        }
      }
    },
    "ReleaseCreateRequest": {
      "description": "A request containing information for creating a release.",
      "properties": {
        "uploaded_by": {
          "type": "string",
          "description": "The user that uploaded the build."
        },
        "name": {
          "type": "string",
          "description": "The display name of the app, extracted from the build."
        },
        "version": {
          "description": "The release's version.<br>\nFor iOS: CFBundleVersion from info.plist.<br>\nFor Android: android:versionCode from AppManifest.xml.\n",
          "type": "string"
        },
        "build_version": {
          "description": "The release's short version.<br>\nFor iOS: CFBundleShortVersionString from info.plist.<br>\nFor Android: android:versionName from AppManifest.xml.\n",
          "type": "string"
        },
        "unique_identifier": {
          "type": "string",
          "description": "The identifier of the app's bundle."
        },
        "minimum_os_version": {
          "type": "string",
          "description": "The release's minimum required operating system."
        },
        "device_family": {
          "type": "string",
          "description": "The release's device family."
        },
        "languages": {
          "type": "array",
          "description": "The languages supported by the release.",
          "items": {
            "type": "string"
          }
        },
        "fingerprint": {
          "type": "string",
          "description": "MD5 checksum of the release binary."
        },
        "size": {
          "type": "integer",
          "description": "The release's size in bytes."
        },
        "package_url": {
          "type": "string",
          "description": "The URL to the release's binary."
        },
        "icon_url": {
          "type": "string",
          "description": "The URL to the release's icon."
        },
        "ipa_uuids": {
          "type": "array",
          "description": "A list of UUIDs for architectures for an iOS app.",
          "items": {
            "$ref": "#/definitions/ArchIdentifier"
          }
        },
        "provision": {
          "$ref": "#/definitions/ProvisioningProfile"
        },
        "appex_provisioning_profiles": {
          "type": "array",
          "description": "iOS app extension provisioning profiles included in the release.",
          "items": {
            "$ref": "#/definitions/ProvisioningProfile"
          }
        }
      },
      "required": [
        "name",
        "version",
        "build_version",
        "unique_identifier",
        "minimum_os_version",
        "fingerprint",
        "size",
        "package_url"
      ]
    },
    "ReleaseCreateResponse": {
      "description": "The response from the release creation API that just contains the created release's distinct id.",
      "properties": {
        "release_distinct_id": {
          "description": "The distinct ID of the release.",
          "type": "number"
        }
      },
      "required": [
        "release_distinct_id"
      ]
    },
    "ReleaseUpdateRequest": {
      "description": "A request containing information for updating a release.",
      "properties": {
        "distribution_group_name": {
          "description": "OBSOLETE. Will be removed in future releases - use destinations instead. Name of a distribution group. The release will be associated with this distribution group. If the distribution group doesn't exist a 400 is returned. If both distribution group name and id are passed, the id is taking precedence.\n",
          "type": "string"
        },
        "distribution_group_id": {
          "description": "OBSOLETE. Will be removed in future releases - use destinations instead. Id of a distribution group. The release will be associated with this distribution group. If the distribution group doesn't exist a 400 is returned. If both distribution group name and id are passed, the id is taking precedence.\n",
          "type": "string"
        },
        "destination_name": {
          "description": "OBSOLETE. Will be removed in future releases - use destinations instead. Name of a destination. The release will be associated with this destination. If the destination doesn't exist a 400 is returned. If both distribution group name and id are passed, the id is taking precedence.\n",
          "type": "string"
        },
        "destination_id": {
          "description": "OBSOLETE. Will be removed in future releases - use destinations instead. Id of a destination. The release will be associated with this destination. If the destination doesn't exist a 400 is returned. If both destination name and id are passed, the id is taking precedence.\n",
          "type": "string"
        },
        "destination_type": {
          "description": "Not used anymore.",
          "type": "string"
        },
        "release_notes": {
          "description": "Release notes for this release.",
          "type": "string"
        },
        "mandatory_update": {
          "description": "A boolean which determines whether this version should be a mandatory update or not.",
          "type": "boolean"
        },
        "destinations": {
          "description": "Distribute this release under the following list of destinations (store groups or distribution groups).",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DestinationId"
          }
        },
        "build": {
          "$ref": "#/definitions/BuildInfo"
        },
        "notify_testers": {
          "description": "A boolean which determines whether to notify testers of a new release, default to true.",
          "type": "boolean",
          "default": true
        }
      }
    },
    "ReleaseDetailsUpdateRequest": {
      "description": "A request containing information for updating details of a release",
      "type": "object",
      "properties": {
        "enabled": {
          "description": "Toggle this release to be enable distribute/download or not.",
          "type": "boolean"
        },
        "release_notes": {
          "description": "Release notes for this release.",
          "type": "string"
        },
        "build": {
          "$ref": "#/definitions/BuildInfo"
        }
      }
    },
    "BuildInfo": {
      "type": "object",
      "description": "Contains metadata about the build that produced the release being uploaded",
      "properties": {
        "branch": {
          "description": "The branch name of the build producing the release",
          "type": "string"
        },
        "commit_hash": {
          "description": "The commit hash of the build producing the release",
          "type": "string"
        },
        "commit_message": {
          "description": "The commit message of the build producing the release",
          "type": "string"
        }
      }
    },
    "DestinationId": {
      "type": "object",
      "description": "A unique identifier for a destination. A destination can be identified by an ID (guid) or by a name. DestinationId encapsulates both options. A destination can be either a distribution group or a store.",
      "properties": {
        "name": {
          "description": "Name of a distribution group / distribution store. The release will be associated with this distribution group or store. If the distribution group / store doesn't exist a 400 is returned. If both distribution group / store name and id are passed, the id is taking precedence.",
          "type": "string"
        },
        "id": {
          "description": "Id of a distribution group / store. The release will be associated with this distribution group / store. If the distribution group / store doesn't exist a 400 is returned. If both distribution group / store name and id are passed, the id is taking precedence.",
          "type": "string"
        }
      }
    },
    "ReleaseDestinationRequest": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/ReleaseStoreDestinationRequest"
        },
        {
          "type": "object",
          "properties": {
            "mandatory_update": {
              "description": "Flag to mark the release for the provided destinations as mandatory",
              "type": "boolean"
            },
            "notify_testers": {
              "description": "Flag to enable or disable notifications to testers",
              "type": "boolean",
              "default": true
            }
          }
        }
      ]
    },
    "ReleaseStoreDestinationRequest": {
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique id of the release destination",
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "id"
      ]
    },
    "ReleaseTesterDestinationRequest": {
      "type": "object",
      "properties": {
        "mandatory_update": {
          "description": "Flag to mark the release for the provided destinations as mandatory",
          "type": "boolean"
        },
        "email": {
          "description": "Tester's email address",
          "type": "string"
        },
        "notify_testers": {
          "description": "Flag to enable or disable notifications to testers",
          "type": "boolean",
          "default": true
        }
      },
      "required": [
        "email"
      ]
    },
    "ReleaseDestinationResponse": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/ReleaseStoreDestinationResponse"
        },
        {
          "type": "object",
          "properties": {
            "mandatory_update": {
              "description": "Flag to mark the release for the provided destinations as mandatory",
              "type": "boolean"
            },
            "provisioning_status_url": {
              "description": "The url to check provisioning status.",
              "type": "string"
            }
          },
          "required": [
            "mandatory_update"
          ]
        }
      ]
    },
    "ReleaseStoreDestinationResponse": {
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique id for the release destination",
          "type": "string"
        }
      },
      "required": [
        "id"
      ]
    },
    "Destination": {
      "allOf": [
        {
          "$ref": "#/definitions/DistributionGroup"
        },
        {
          "$ref": "#/definitions/DistributionStore"
        },
        {
          "$ref": "#/definitions/DestinationId"
        },
        {
          "type": "object",
          "properties": {
            "destination_type": {
              "description": "Destination can be either store or group.",
              "type": "string",
              "enum": [
                "group",
                "store",
                "tester"
              ]
            }
          }
        }
      ]
    },
    "PrivateReleaseUpdateRequest": {
      "description": "A request containing information for updating a release.",
      "properties": {
        "publishing_status": {
          "description": "The store publishing status.",
          "type": "string",
          "enum": [
            "failed",
            "processing",
            "submitted"
          ]
        }
      }
    },
    "DistributionGroup": {
      "allOf": [
        {
          "$ref": "#/definitions/DestinationId"
        },
        {
          "type": "object",
          "properties": {
            "is_latest": {
              "description": "Is the containing release the latest one in this distribution group.",
              "type": "boolean"
            }
          }
        }
      ]
    },
    "DistributionGroupWithoutIsLatest": {
      "properties": {
        "id": {
          "description": "ID identifying a unique distribution group.",
          "type": "string"
        },
        "name": {
          "description": "A name identifying a unique distribution group.",
          "type": "string"
        }
      }
    },
    "DistributionStore": {
      "allOf": [
        {
          "$ref": "#/definitions/DestinationId"
        },
        {
          "type": "object",
          "properties": {
            "is_latest": {
              "description": "Is the containing release the latest one in this distribution store.",
              "type": "boolean"
            },
            "type": {
              "description": "type of the distribution store currently stores type can be intune, googleplay or windows.",
              "type": "string",
              "enum": [
                "intune",
                "googleplay",
                "windows"
              ]
            },
            "publishing_status": {
              "description": "publishing status of the release in the store.",
              "type": "string"
            }
          }
        }
      ]
    },
    "DistributionStoreWithoutIsLatest": {
      "properties": {
        "id": {
          "description": "ID identifying a unique distribution store.",
          "type": "string"
        },
        "name": {
          "description": "A name identifying a unique distribution store.",
          "type": "string"
        },
        "type": {
          "description": "type of the distribution store currently stores type can be intune, googleplay or windows.",
          "type": "string",
          "enum": [
            "intune",
            "googleplay",
            "windows"
          ]
        },
        "publishing_status": {
          "description": "publishing status of the release in the store.",
          "type": "string"
        }
      }
    },
    "ArchIdentifier": {
      "description": "An object containing a UUID for an architecture for an iOS app.",
      "type": "object",
      "properties": {
        "architecture": {
          "description": "The architecture that the UUID belongs to, i.e. armv7 or arm64.",
          "type": "string"
        },
        "uuid": {
          "description": "The unique identifier.",
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "architecture",
        "uuid"
      ]
    },
    "ProvisioningProfile": {
      "description": "An object containing information about an iOS provisioning profile.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the provisioning profile.",
          "type": "string"
        },
        "application_identifier": {
          "description": "The application identifier.",
          "type": "string"
        },
        "team_identifier": {
          "description": "The team identifier.",
          "type": "string"
        },
        "profile_type": {
          "type": "string",
          "enum": [
            "adhoc",
            "enterprise",
            "other"
          ]
        },
        "expired_at": {
          "description": "The profile's expiration date in RFC 3339 format, i.e. 2017-07-21T17:32:28Z",
          "type": "string",
          "format": "date-time"
        },
        "udids": {
          "type": "array",
          "items": {
            "description": "A UDID of a provisioned device.",
            "type": "string"
          }
        }
      },
      "required": [
        "name",
        "application_identifier",
        "team_identifier",
        "profile_type",
        "expired_at"
      ]
    },
    "ProvisioningProfileResponse": {
      "description": "A response containing information about an iOS provisioning profile.",
      "properties": {
        "provisioning_profile_type": {
          "type": "string",
          "enum": [
            "adhoc",
            "enterprise",
            "other"
          ]
        },
        "udids": {
          "type": "array",
          "items": {
            "description": "A UDID of a provisioned device.",
            "type": "string"
          }
        },
        "provisioning_profile_name": {
          "description": "The name of the provisioning profile.",
          "type": "string"
        },
        "team_identifier": {
          "description": "The team identifier.",
          "type": "string"
        },
        "provisioning_bundle_id": {
          "description": "The bundle identifier associated with the profile.",
          "type": "string"
        },
        "appex_profiles": {
          "description": "Array of provisioning profiles for any app extensions",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProvisioningProfileResponse"
          }
        }
      },
      "required": [
        "provisioning_profile_type"
      ]
    },
    "ReleaseUpdateError": {
      "allOf": [
        {
          "$ref": "#/definitions/ErrorDetails"
        },
        {
          "type": "object",
          "properties": {
            "release_notes": {
              "type": "string"
            },
            "mandatory_update": {
              "type": "boolean"
            },
            "destinations": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DestinationError"
              }
            }
          }
        }
      ]
    },
    "DestinationError": {
      "properties": {
        "code": {
          "type": "string",
          "description": "Error Codes:<br>\n<b>invalid_store_secrets</b>: While distributing to store, secrets provided for store are not valid.<br>\n<b>store_release_bad_request</b>: Proper package release details for the store is not provided.<br>\n<b>store_release_unauthorized</b>: User is not authorized to publish to store due to invalid developer credentials.<br>\n<b>store_release_forbidden</b>: Publish to store is forbidden due to conflicts/errors in the release version and already existing version in the store.<br>\n<b>store_release_promotion</b>: Release already distributed, promoting a release is not supported.<br>\n<b>store_track_deactivated</b>: One or more tracks would be deactivated with this release. This is not supported yet.<br>\n<b>store_release_not_found</b>: App with the given package name is not found in the store.<br>\n<b>store_release_not_available</b>: The release is not available.<br>\n<b>internal_server_error</b>: Failed to distribute to a destination due to an internal server error.\n"
        },
        "message": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "AutoProvisioningConfigRequest": {
      "description": "A request containing information for creating a Auto Provisioning Config.",
      "properties": {
        "apple_developer_account_key": {
          "type": "string",
          "description": "A key to a secret in customer-credential-store. apple_developer_account refers to the user's developer account that is used to log into https://developer.apple.com. Normally the user's email."
        },
        "apple_distribution_certificate_key": {
          "type": "string",
          "description": "A key to a secret in customer-credential-store. distribution_certificate refers to the customer's certificate (that holds the private key) that will be used to sign the app."
        },
        "allow_auto_provisioning": {
          "type": "boolean",
          "description": "When *true* enables auto provisioning"
        }
      }
    },
    "AutoProvisioningConfigResponse": {
      "description": "A response from API containing information for a Auto Provisioning Config.",
      "properties": {
        "id": {
          "type": "number",
          "description": "The identifier of the config."
        },
        "app_id": {
          "type": "string",
          "description": "The identifier of the App."
        },
        "destination_id": {
          "type": "string",
          "description": "The identifier of the destination."
        },
        "apple_developer_account_key": {
          "type": "string",
          "description": "A key to a secret in customer-credential-store. apple_developer_account refers to the user's developer account that is used to log into https://developer.apple.com. Normally the user's email."
        },
        "apple_distribution_certificate_key": {
          "type": "string",
          "description": "A key to a secret in customer-credential-store. distribution_certificate refers to the cusomer's certificate (that holds the private key) that will be used to sign the app."
        },
        "allow_auto_provisioning": {
          "type": "boolean",
          "description": "When *true* enables auto provisioning"
        }
      }
    },
    "AnalyticsReleasesResponse": {
      "properties": {
        "releases": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AnalyticsReleasesParameter"
          }
        }
      }
    },
    "AnalyticsReleasesParameter": {
      "type": "object",
      "properties": {
        "release_id": {
          "description": "release id",
          "type": "integer"
        },
        "distribution_group_id": {
          "description": "distribution group id",
          "type": "string"
        },
        "user_id": {
          "description": "user id",
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "release_id",
        "distribution_group_id",
        "user_id"
      ]
    },
    "HockeyAppCompatibilityReleaseResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer"
        },
        "shortversion": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "uploaded_at": {
          "type": "string",
          "format": "date-time"
        },
        "appsize": {
          "type": "integer"
        },
        "notes": {
          "type": "string"
        },
        "mandatory": {
          "type": "boolean"
        },
        "external": {
          "type": "boolean"
        },
        "device_family": {
          "type": "string"
        },
        "minimum_os_version": {
          "type": "string"
        }
      }
    },
    "MigrateReleaseRequest": {
      "description": "A list of HockeyApp releases to migrate to App Center",
      "properties": {
        "releases": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HockeyAppMigrationRelease"
          }
        }
      }
    },
    "HockeyAppMigrationRelease": {
      "description": "A single HockeyApp release to migrate to App Center",
      "properties": {
        "id": {
          "type": "number"
        },
        "shortversion": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "appsize": {
          "type": "integer"
        },
        "minimum_os_version": {
          "type": "string"
        },
        "md5_fingerprint": {
          "type": "string"
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "build_url": {
          "type": "string"
        },
        "bundle_identifier": {
          "type": "string"
        },
        "device_family": {
          "type": "string"
        },
        "languages": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "uuids": {
          "description": "For iOS apps, a dictionary of UUIDs for architectures (in format `{\"armv7\": \"353df799-d450-3308-8492-928ecf1ebf53\", \"arm64\": \"e67c0e93-b6d6-3f5a-b3a7-68d2b215bf27\"}`)",
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "format": "uuid"
          },
          "example": {
            "armv7": "353df799-d450-3308-8492-928ecf1ebf53",
            "arm64": "e67c0e93-b6d6-3f5a-b3a7-68d2b215bf27"
          }
        },
        "is_external_build": {
          "type": "boolean"
        },
        "mandatory": {
          "type": "boolean"
        },
        "status": {
          "description": "The status of the release in HockeyApp. Maps to HockeyAppSchema.AppVersionStatus. Possible values: Deleted = -1, New = 0, Inactive = 1, Active = 2, Hidden = 3, SonomaActive = 4",
          "type": "integer"
        },
        "notes": {
          "type": "string"
        },
        "distribution_group_ids": {
          "description": "List of DistributionGroup IDs the release is distributed to",
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid"
          }
        },
        "distribution_user_ids": {
          "description": "List of User IDs the release is distributed to",
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid"
          }
        },
        "provisioning_profiles": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ProvisioningProfileMigration"
          }
        }
      }
    },
    "ProvisioningProfileMigration": {
      "description": "Describes the migration schema for a provisioning profile defined in HockeyApp.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the provisioning profile.",
          "type": "string"
        },
        "bundle_id": {
          "description": "The bundle/application identifier.",
          "type": "string"
        },
        "team_identifier": {
          "description": "The team identifier.",
          "type": "string"
        },
        "type": {
          "description": "The type of provisoning profile.",
          "type": "integer",
          "enum": [
            0,
            1,
            2
          ]
        },
        "is_appex": {
          "description": "A boolean value that indicates whether the provisioning profile represents an app extension.",
          "type": "boolean"
        },
        "expired_at": {
          "description": "The provisioning profile's expiration date in RFC 3339 format, i.e. 2017-07-21T17:32:28Z.",
          "type": "string",
          "format": "date-time"
        },
        "udids": {
          "description": "A list of UDIDs of provisioned devices.",
          "type": "array",
          "items": {
            "description": "A UDID of a provisioned device.",
            "type": "string"
          }
        },
        "url": {
          "description": "A provisioning profile URL that indicates where to download it from.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "bundle_id",
        "team_identifier",
        "type",
        "is_appex"
      ]
    },
    "PrivateUpdateUploadDetails": {
      "description": "Details of the upload to patch",
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "uploadStarted",
            "uploadFinished",
            "readyToBePublished",
            "malwareDetected",
            "error"
          ]
        },
        "error_message": {
          "type": "string",
          "description": "Message of the error"
        }
      },
      "required": [
        "status",
        "error_message"
      ]
    },
    "DeviceConfigurationResponse": {
      "description": "A response containing the fully encoded binary blob for a mobileconfig",
      "properties": {
        "data_url": {
          "description": "A data URL containing a signed mobileconfig profile",
          "type": "string"
        }
      },
      "required": [
        "data_url"
      ]
    },
    "DeviceInfoRequest": {
      "description": "The information for a single iOS device",
      "required": [
        "udid",
        "model"
      ],
      "properties": {
        "udid": {
          "type": "string",
          "description": "The Unique Device IDentifier of the device"
        },
        "model": {
          "type": "string",
          "description": "The model identifier of the device, in the format iDeviceM,N"
        },
        "os_build": {
          "type": "string",
          "description": "The build number of the last known OS version running on the device"
        },
        "os_version": {
          "type": "string",
          "description": "The last known OS version running on the device"
        },
        "serial": {
          "type": "string",
          "description": "The device's serial number. Always empty or undefined at present."
        },
        "imei": {
          "type": "string",
          "description": "The device's International Mobile Equipment Identity number. Always empty or undefined at present."
        },
        "owner_id": {
          "type": "string",
          "description": "The user ID of the device owner."
        }
      }
    },
    "DeviceInfoResponse": {
      "description": "The information for a single iOS device",
      "required": [
        "udid",
        "model",
        "device_name",
        "os_build",
        "os_version",
        "status"
      ],
      "properties": {
        "udid": {
          "type": "string",
          "description": "The Unique Device IDentifier of the device"
        },
        "model": {
          "type": "string",
          "description": "The model identifier of the device, in the format iDeviceM,N"
        },
        "device_name": {
          "type": "string",
          "description": "The device description, in the format \"iPhone 7 Plus (A1784)\""
        },
        "full_device_name": {
          "type": "string",
          "description": "A combination of the device model name and the owner name."
        },
        "os_build": {
          "type": "string",
          "description": "The last known OS version running on the device"
        },
        "os_version": {
          "type": "string",
          "description": "The last known OS version running on the device"
        },
        "serial": {
          "type": "string",
          "description": "The device's serial number. Always empty or undefined at present."
        },
        "imei": {
          "type": "string",
          "description": "The device's International Mobile Equipment Identity number. Always empty or undefined at present."
        },
        "owner_id": {
          "type": "string",
          "description": "The user ID of the device owner."
        },
        "status": {
          "type": "string",
          "description": "The provisioning status of the device."
        },
        "registered_at": {
          "type": "string",
          "description": "Timestamp of when the device was registered in ISO format."
        }
      }
    },
    "ResignStatus": {
      "description": "The status of the resign operation.",
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "type": "string",
          "description": "The status of the resign"
        },
        "error_code": {
          "type": "string",
          "description": "Error code for any error that occured during the resigning operation."
        },
        "error_message": {
          "type": "string",
          "description": "Error message for any error that occured during the resigning operation."
        }
      }
    },
    "ResignInfo": {
      "description": "The information for a resign attempt.",
      "properties": {
        "group_name": {
          "type": "string",
          "description": "The group name of the resign attempt"
        },
        "profile_name": {
          "type": "string",
          "description": "The provisioning profile name of group for the given resign attempt"
        },
        "profile_type": {
          "type": "string",
          "description": "The provisioning profile type of group for the given resign attempt"
        },
        "certificate_name": {
          "type": "string",
          "description": "The name of the certificate used for the resign attempt"
        },
        "certificate_expiration": {
          "type": "string",
          "description": "The expiration date of the certificate used for the resign attempt"
        }
      }
    },
    "PublishDevicesRequest": {
      "description": "The publising information.",
      "properties": {
        "username": {
          "type": "string",
          "description": "The username for the Apple Developer account to publish the devices to."
        },
        "password": {
          "type": "string",
          "description": "The password for the Apple Developer account to publish the devices to."
        },
        "account_service_connection_id": {
          "type": "string",
          "description": "The service_connection_id of the stored Apple credentials instead of username, password."
        },
        "publish_all_devices": {
          "type": "boolean",
          "description": "When set to true, all unprovisioned devices will be published to the Apple Developer account.  When false, only the provided devices will be published to the Apple Developer account."
        },
        "devices": {
          "type": "array",
          "description": "Array of device UDID's to be published to the Apple Developer account.",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "PublishDevicesResponse": {
      "description": "The information for a single iOS device",
      "required": [
        "profiles_zip_base64"
      ],
      "properties": {
        "profile_file_name": {
          "type": "string",
          "description": "The file name for the provisioning profile."
        },
        "profiles_zip_base64": {
          "type": "string",
          "description": "The updated provisioning profiles zip base64 encoded."
        }
      }
    },
    "AppleLoginRequest": {
      "description": "Apple credentials needed to log into the Apple Developer Portal",
      "required": [
        "username",
        "password"
      ],
      "properties": {
        "username": {
          "type": "string",
          "description": "The username for the Apple Developer account."
        },
        "password": {
          "type": "string",
          "description": "The password for the Apple Developer account."
        },
        "team_identifier": {
          "type": "string",
          "description": "Identifier of the team to use when logged in."
        },
        "cookie": {
          "type": "string",
          "description": "The 30-day session cookie for multi-factor authentication backed accounts."
        }
      }
    },
    "AppleLoginResponse": {
      "description": "Indicates if login was successful.",
      "properties": {
        "successful": {
          "type": "boolean",
          "description": "True when login was successful."
        }
      }
    },
    "AppleMutifactorLoginRequest": {
      "description": "Apple credentials needed to log into the Apple Developer Portal",
      "required": [
        "username",
        "authcode"
      ],
      "properties": {
        "username": {
          "type": "string",
          "description": "The username for the Apple Developer account."
        },
        "authcode": {
          "type": "string",
          "description": "This is the six digit OTP used for completing the multi-factor authentication"
        }
      }
    },
    "AppleMultifactorLoginResponse": {
      "description": "The response of Multifactor login. This is a 30 day session token generated by apple.",
      "properties": {
        "username": {
          "type": "string",
          "description": "the apple developer account."
        },
        "cookie": {
          "type": "string",
          "description": "The 30-day session Token generated by apple after successfully logging in with Multifactor authentication."
        },
        "expires": {
          "type": "string",
          "description": "The expiry date of the cookie generated by apple"
        }
      }
    },
    "ApplicationStatusRequest": {
      "description": "The information needed to fetch the status of an application",
      "required": [
        "username",
        "password",
        "bundle_identifier",
        "track_identifier"
      ],
      "properties": {
        "username": {
          "type": "string",
          "description": "The username for the Apple Developer account."
        },
        "password": {
          "type": "string",
          "description": "The password for the Apple Developer account."
        },
        "bundle_identifier": {
          "type": "string",
          "description": "Bundle Identifier of application in Apple Itunes portal."
        },
        "track_identifier": {
          "type": "string",
          "description": "Track Identifier for which the status is to be fetched."
        },
        "build_version": {
          "type": "string",
          "description": "The version of build for which real time status is to be fetched."
        },
        "team_identifier": {
          "type": "string",
          "description": "Identifier of the team to use when logged in."
        },
        "train_version": {
          "type": "string",
          "description": "The Train version for which the status is to be fetched."
        }
      }
    },
    "ApplicationStatusResponse": {
      "description": "The status information from Itunes portal",
      "properties": {
        "version_type": {
          "type": "string",
          "description": "The type of version being returned (production/edit/test flight)."
        },
        "version": {
          "type": "string",
          "description": "The version of the application"
        }
      },
      "required": [
        "version_type"
      ]
    },
    "ItunesAppsRequest": {
      "description": "Apple credentials with username, password or service_connection_id of the stored credentials is needed along with team_identifier.",
      "properties": {
        "username": {
          "type": "string",
          "description": "The username for the Apple Developer account."
        },
        "password": {
          "type": "string",
          "description": "The password for the Apple Developer account."
        },
        "service_connection_id": {
          "type": "string",
          "description": "The service_connection_id of the stored Apple credentials instead of username, password."
        },
        "team_identifier": {
          "type": "string",
          "description": "Identifier of the team to use when logged in."
        },
        "cookie": {
          "type": "string",
          "description": "The 30-day session cookie for multi-factor authentication backed accounts."
        }
      }
    },
    "ItunesTeamsRequest": {
      "description": "Apple credentials with username, password or service_connection_id of the stored credentials is needed.",
      "properties": {
        "username": {
          "type": "string",
          "description": "The username for the Apple Developer account."
        },
        "password": {
          "type": "string",
          "description": "The password for the Apple Developer account."
        },
        "service_connection_id": {
          "type": "string",
          "description": "The service_connection_id of the stored Apple credentials instead of username, password."
        },
        "cookie": {
          "type": "string",
          "description": "The 30-day session cookie for multi-factor authentication backed accounts."
        }
      }
    },
    "ItunesTeamsResponse": {
      "description": "Itunes teams details .",
      "properties": {
        "teamId": {
          "type": "string",
          "description": "Itunes team id."
        },
        "teamName": {
          "type": "string",
          "description": "Itunes Team Name"
        }
      }
    },
    "AllItunesAppsResponse": {
      "description": "Itunes teams details .",
      "properties": {
        "apple_id": {
          "type": "string",
          "description": "apple id for app team id."
        },
        "bundle_id": {
          "type": "string",
          "description": "bundle identifier of app"
        },
        "name": {
          "type": "string",
          "description": "App Name"
        },
        "iconUrl": {
          "type": "string",
          "description": "url for the app icon from app store"
        }
      }
    },
    "AppleTestFlightGroupRequest": {
      "description": "Apple details for fetching test flight groups from Apple Developer Portal. pass either apple_id or bundle_identifier to get the test flight groups. if both are passed than apple_id will take preference",
      "properties": {
        "username": {
          "type": "string",
          "description": "The username for the Apple Developer account."
        },
        "password": {
          "type": "string",
          "description": "The password for the Apple Developer account."
        },
        "apple_id": {
          "type": "string",
          "description": "apple_id of the app for which test flight groups need to be fetched."
        },
        "bundle_identifier": {
          "type": "string",
          "description": "apple_id of the app for which test flight groups need to be fetched."
        },
        "team_identifier": {
          "type": "string",
          "description": "Identifier of the team to use when logged in."
        },
        "cookie": {
          "type": "string",
          "description": "The 30-day session cookie for multi-factor authentication backed accounts."
        },
        "service_connection_id": {
          "type": "string",
          "description": "The service_connection_id of the stored Apple credentials instead of username, password."
        }
      }
    },
    "AppleTestFlightGroupResponse": {
      "description": "test flight group details for the app.",
      "properties": {
        "id": {
          "type": "string",
          "description": "id of the group."
        },
        "providerId": {
          "type": "number",
          "description": "provider id of the group."
        },
        "appAdamId": {
          "type": "number",
          "description": "apple id of the group."
        },
        "name": {
          "type": "string",
          "description": "name of the group."
        },
        "active": {
          "type": "boolean",
          "description": "true if group is in active state."
        },
        "isInternalGroup": {
          "type": "boolean",
          "description": "true if the group is an internal group."
        }
      }
    },
    "AvailabilityOfDevicesRequest": {
      "description": "Apple credentials needed to log into the Apple Developer Portal and access provisioning profiles",
      "properties": {
        "username": {
          "type": "string",
          "description": "The username for the Apple Developer account."
        },
        "password": {
          "type": "string",
          "description": "The password for the Apple Developer account."
        },
        "service_connection_id": {
          "type": "string",
          "description": "The service_connection_id of the stored Apple credentials instad of username, password."
        }
      }
    },
    "DeviceAvailability": {
      "description": "...",
      "properties": {
        "registered": {
          "type": "number"
        },
        "available": {
          "type": "number"
        },
        "maximum": {
          "type": "number"
        }
      },
      "required": [
        "registered",
        "available",
        "maximum"
      ]
    },
    "AvailabilityOfDevicesResponse": {
      "description": "The current device availability (registered, available and maxmimum) for iPhones, iPads, iPods and Watches from Apple Developer Portal",
      "properties": {
        "iphones": {
          "$ref": "#/definitions/DeviceAvailability"
        },
        "ipads": {
          "$ref": "#/definitions/DeviceAvailability"
        },
        "ipods": {
          "$ref": "#/definitions/DeviceAvailability"
        },
        "watches": {
          "$ref": "#/definitions/DeviceAvailability"
        }
      },
      "required": [
        "iphones",
        "ipads",
        "ipods",
        "watches"
      ]
    },
    "UpdateDevicesRequest": {
      "description": "Information required to publish devices to the Apple Developer account and resign the application.",
      "properties": {
        "release_id": {
          "type": "number",
          "description": "When provided, will update the provided release with the new set of devices. By default the latest release of the distribution group is used when this property is omitted. If `release_id` is passed in the path, there is no need to pass in the body as well."
        },
        "username": {
          "type": "string",
          "description": "The username for the Apple Developer account to publish the devices to."
        },
        "password": {
          "type": "string",
          "description": "The password for the Apple Developer account to publish the devices to."
        },
        "account_service_connection_id": {
          "type": "string",
          "description": "The service_connection_id of the stored Apple credentials instead of username, password."
        },
        "p12_base64": {
          "type": "string",
          "description": "The certificate to use for resigning the application with the updated provisioning profiles."
        },
        "p12_service_connection_id": {
          "type": "string",
          "description": "The service_connection_id of the stored Apple certificate instead of p12_base64 value."
        },
        "p12_password": {
          "type": "string",
          "description": "The password certificate if one is needed."
        },
        "publish_all_devices": {
          "type": "boolean",
          "description": "When set to true, all unprovisioned devices will be published to the Apple Developer account.  When false, only the provided devices will be published to the Apple Developer account."
        },
        "devices": {
          "type": "array",
          "description": "Array of device UDID's to be published to the Apple Developer account.",
          "items": {
            "type": "string"
          }
        },
        "destinations": {
          "type": "array",
          "description": "Array of distribution groups that the devices should be provisioned from.",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "UpdateDevicesResponse": {
      "description": "URL that can be used to check the status of the update devices operation and the updated profiles.",
      "required": [
        "status_url"
      ],
      "properties": {
        "status_url": {
          "type": "string",
          "description": "URL that can be used to check the status of the update devices operation."
        }
      }
    },
    "UpdateResignStatusRequest": {
      "description": "Updates the status of the resign request",
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "type": "string",
          "description": "The updated status for the resigning request."
        },
        "error_code": {
          "type": "string",
          "description": "Error code if an error occured in the resigning operation."
        },
        "error_message": {
          "type": "string",
          "description": "Error message if an error occured in the resigning operation."
        }
      }
    },
    "UpdateResignStatusResponse": {
      "description": "URL that can be used to check the status of the update devices operation and the updated profiles.",
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "type": "string",
          "description": "The status."
        },
        "profiles_zip_base64": {
          "type": "string",
          "description": "A zip of the updated provisioning profiles. Base64 encoded."
        }
      }
    },
    "DeviceRegistrationUrl": {
      "description": "The url that can be navigated to in order to start the device registration process.",
      "required": [
        "registration_url"
      ],
      "properties": {
        "registration_url": {
          "type": "string",
          "description": "The url that can be navigated to in order to start the device registration process."
        }
      }
    },
    "ResignAttemptResponse": {
      "description": "URL that can be used to check the status of the update devices operation and the updated profiles.",
      "required": [
        "status",
        "appId",
        "originalReleaseId",
        "userId",
        "contextId",
        "resignId",
        "startTime"
      ],
      "properties": {
        "status": {
          "type": "string",
          "description": "The status of the resigning operation."
        },
        "userId": {
          "type": "string",
          "description": "ID of the user performing the resign operaiton."
        },
        "appId": {
          "type": "string",
          "description": "App ID that the resign operation is being performed against."
        },
        "originalReleaseId": {
          "type": "number",
          "description": "ID of the release which is being resigned."
        },
        "resignId": {
          "type": "string",
          "description": "ID of the resign operation."
        },
        "contextId": {
          "type": "string",
          "description": "Context ID for the resigning operation."
        },
        "startTime": {
          "type": "number",
          "description": "The time that the resign operation was started."
        },
        "destinations": {
          "type": "array",
          "description": "List of destinations that the resign operation is being performed against.",
          "items": {
            "type": "object"
          }
        },
        "errorCode": {
          "type": "string",
          "description": "Error code associated with the exception."
        },
        "errorMessage": {
          "type": "string",
          "description": "Error message associated with the exception."
        }
      }
    },
    "StoresReleaseDetails": {
      "description": "Details of an uploaded release",
      "properties": {
        "id": {
          "description": "ID identifying this unique release.",
          "type": "number"
        },
        "status": {
          "description": "OBSOLETE. Will be removed in next version. The availability concept is now replaced with distributed. Any 'available' release will be associated with the default distribution group of an app.</br>\nThe release state.<br>\n<b>available</b>: The uploaded release has been distributed.<br>\n<b>unavailable</b>: The uploaded release is not visible to the user. <br>\n",
          "type": "string",
          "enum": [
            "available",
            "unavailable"
          ]
        },
        "app_name": {
          "description": "The app's name (extracted from the uploaded release).",
          "type": "string"
        },
        "app_display_name": {
          "description": "The app's display name.",
          "type": "string"
        },
        "version": {
          "description": "The release's version.<br>\nFor iOS: CFBundleVersion from info.plist.\nFor Android: android:versionCode from AppManifest.xml.\n",
          "type": "string"
        },
        "short_version": {
          "description": "The release's short version.<br>\nFor iOS: CFBundleShortVersionString from info.plist.\nFor Android: android:versionName from AppManifest.xml.\n",
          "type": "string"
        },
        "release_notes": {
          "description": "The release's release notes.",
          "type": "string"
        },
        "size": {
          "description": "The release's size in bytes.",
          "type": "number"
        },
        "min_os": {
          "description": "The release's minimum required operating system.",
          "type": "string"
        },
        "android_min_api_level": {
          "description": "The release's minimum required Android API level.",
          "type": "string"
        },
        "bundle_identifier": {
          "description": "The identifier of the apps bundle.",
          "type": "string"
        },
        "fingerprint": {
          "description": "MD5 checksum of the release binary.",
          "type": "string"
        },
        "uploaded_at": {
          "description": "UTC time in ISO 8601 format of the uploaded time.",
          "type": "string"
        },
        "download_url": {
          "description": "The URL that hosts the binary for this release.",
          "type": "string"
        },
        "install_url": {
          "description": "The href required to install a release on a mobile device. On iOS devices will be prefixed with `itms-services://?action=download-manifest&url=`",
          "type": "string",
          "enum": [
            "group",
            "store"
          ]
        },
        "distribution_stores": {
          "description": "a list of distribution stores that are associated with this release.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/StoresBasicDetails"
          }
        }
      }
    },
    "StorePatchRequest": {
      "properties": {
        "service_connection_id": {
          "type": "string",
          "description": "Service connection id to updated."
        }
      },
      "required": [
        "service_connection_id"
      ]
    },
    "ExternalStoreRequest": {
      "description": "ExternalStoreRequest",
      "properties": {
        "type": {
          "description": "store Type",
          "type": "string",
          "enum": [
            "googleplay",
            "intune",
            "apple"
          ]
        },
        "name": {
          "description": "name of the store. In case of googleplay, and Apple store this is fixed to Production.",
          "type": "string"
        },
        "track": {
          "description": "track of the store. Can be production, alpha & beta for googleplay. Can be production, testflight-internal & testflight-external for Apple Store.",
          "type": "string",
          "enum": [
            "production",
            "alpha",
            "beta",
            "testflight-internal",
            "testflight-external"
          ]
        },
        "intune_details": {
          "$ref": "#/definitions/IntuneStoreRequest"
        },
        "service_connection_id": {
          "description": "Id for the shared service connection. In case of Apple AppStore, this connection will be used to create and connect to the Apple AppStore in Mobile Center.",
          "type": "string"
        }
      }
    },
    "AppleMappingRequest": {
      "description": "Apple Mapping Request Type",
      "properties": {
        "service_connection_id": {
          "description": "Id for the shared service connection. In case of Apple AppStore, this connection will be used to create and connect to the Apple AppStore in Mobile Center.",
          "type": "string"
        },
        "apple_id": {
          "description": "ID of the apple application in apple store, takes precedence over bundle_identifier when both are provided",
          "type": "string"
        },
        "bundle_identifier": {
          "description": "Bundle Identifier of the apple package",
          "type": "string"
        },
        "team_identifier": {
          "description": "ID of the Team associated with the app in apple store",
          "type": "string"
        }
      },
      "required": [
        "service_connection_id",
        "team_identifier"
      ]
    },
    "AppleMappingResponse": {
      "description": "Apple Mapping Request Type",
      "properties": {
        "app_id": {
          "description": "ID of the apple application in Mobile Center",
          "type": "string"
        },
        "service_connection_id": {
          "description": "Id for the shared service connection. In case of Apple AppStore, this connection will be used to create and connect to the Apple AppStore in Mobile Center.",
          "type": "string"
        },
        "apple_id": {
          "description": "ID of the apple application in apple store",
          "type": "string"
        },
        "team_identifier": {
          "description": "ID of the Team associated with the app in apple store",
          "type": "string"
        }
      }
    },
    "AppleTestFlightGroupsResponse": {
      "description": "Apple Test Flight Groups Response Type",
      "properties": {
        "id": {
          "description": "id of the group.",
          "type": "string"
        },
        "providerId": {
          "description": "provider id of the group.",
          "type": "number"
        },
        "appleId": {
          "description": "apple id of the group.",
          "type": "number"
        },
        "name": {
          "description": "name of the group.",
          "type": "string"
        }
      }
    },
    "PrivateCreateStoreRequest": {
      "description": "create the store through private API. Used by UI.",
      "properties": {
        "type": {
          "description": "store Type",
          "type": "string",
          "enum": [
            "intune"
          ]
        },
        "name": {
          "description": "name of the store.",
          "type": "string"
        },
        "intune_details": {
          "$ref": "#/definitions/PrivateIntuneStoreRequest"
        }
      }
    },
    "IntuneSecretDetails": {
      "properties": {
        "id_token": {
          "description": "the id token of user",
          "type": "string"
        },
        "refresh_token": {
          "description": "the refresh token for user",
          "type": "string"
        },
        "refresh_token_expiry": {
          "description": "the expiry of refresh token",
          "type": "string"
        }
      }
    },
    "IntuneCategories": {
      "properties": {
        "odata.context": {
          "description": "context",
          "type": "string"
        },
        "value": {
          "description": "categories for intune app",
          "type": "array",
          "items": {
            "$ref": "#/definitions/IntuneCategoryValue"
          }
        }
      }
    },
    "IntuneCategoryValue": {
      "properties": {
        "id": {
          "description": "the id of the category",
          "type": "string"
        },
        "displayName": {
          "description": "the display name for the category",
          "type": "string"
        },
        "lastModifiedDateTime": {
          "description": "modified date for category",
          "type": "string"
        }
      }
    },
    "IntuneGroups": {
      "properties": {
        "odata.context": {
          "description": "context",
          "type": "string"
        },
        "value": {
          "description": "categories for intune app",
          "type": "array",
          "items": {
            "$ref": "#/definitions/IntuneGroupValue"
          }
        }
      }
    },
    "IntuneGroupValue": {
      "properties": {
        "id": {
          "description": "the id of the Group",
          "type": "string"
        },
        "displayName": {
          "description": "the display name of the group",
          "type": "string"
        }
      }
    },
    "IntuneGroup": {
      "properties": {
        "id": {
          "description": "the id of the Group",
          "type": "string"
        },
        "displayName": {
          "description": "the display name of the group",
          "type": "string"
        },
        "securityEnabled": {
          "description": "species if it is a security group",
          "type": "boolean"
        }
      }
    },
    "CreateStoreSecretRequest": {
      "properties": {
        "secret_json": {
          "$ref": "#/definitions/SecretDetails"
        },
        "tenant_id": {
          "description": "the tenant id for user",
          "type": "string"
        }
      }
    },
    "CreateStoreSecretResponse": {
      "properties": {
        "secret_id": {
          "description": "the secret id for store secret",
          "type": "string"
        }
      }
    },
    "SecretDetails": {
      "properties": {
        "id_token": {
          "description": "the id token of user",
          "type": "string"
        },
        "refresh_token": {
          "description": "the refresh token for user",
          "type": "string"
        },
        "refresh_token_expiry": {
          "description": "the expiry of refresh token",
          "type": "string"
        }
      }
    },
    "ReleasePublishErrorResponse": {
      "description": "ReleasePublishErrorResponse",
      "properties": {
        "message": {
          "description": "error Details",
          "type": "string"
        },
        "is_logs_available": {
          "description": "boolean property to tell if logs are available for download",
          "type": "boolean"
        }
      }
    },
    "ReleaseRealTimeStatusResponse": {
      "description": "status of the app from store",
      "properties": {
        "release_id": {
          "description": "release id",
          "type": "string"
        },
        "app_id": {
          "description": "app id",
          "type": "string"
        },
        "status": {
          "$ref": "#/definitions/StatusData"
        }
      }
    },
    "ValidationResponse": {
      "description": "The response which contains the validation data that the connection is valid.",
      "properties": {
        "app_id": {
          "description": "app id",
          "type": "string"
        },
        "status": {
          "$ref": "#/definitions/StatusData"
        }
      }
    },
    "HasBuildUploadedResponse": {
      "description": "The response for the build uploaded check.",
      "properties": {
        "has_build_uploaded": {
          "description": "true if a build has been uploaded, false otherwise",
          "type": "boolean"
        }
      }
    },
    "HasTestflightMetadataResponse": {
      "description": "The response for the testflight metadata check.",
      "properties": {
        "has_testflight_metadata": {
          "description": "true if the app has the testflight metadata, false otherwise",
          "type": "boolean"
        }
      }
    },
    "SkipValidationRequest": {
      "description": "Wheither or not to skip the validation for this release",
      "properties": {
        "skip_validation": {
          "description": "true if we want to skip the validation, false otherwise",
          "type": "boolean"
        }
      }
    },
    "StatusData": {
      "description": "Status Data from store",
      "properties": {
        "status": {
          "description": "status from store",
          "type": "string"
        },
        "storetype": {
          "description": "store type",
          "type": "string"
        },
        "track": {
          "description": "track information from store",
          "type": "string"
        },
        "version": {
          "description": "version of the app from store",
          "type": "string"
        }
      }
    },
    "ExternalStoreResponse": {
      "description": "ExternalStoreResponse",
      "properties": {
        "id": {
          "description": "Store id",
          "type": "string"
        },
        "name": {
          "description": "Store Name",
          "type": "string"
        },
        "type": {
          "description": "Store Type",
          "type": "string"
        },
        "track": {
          "description": "Store track",
          "type": "string",
          "enum": [
            "production",
            "alpha",
            "beta",
            "testflight-internal",
            "testflight-external"
          ]
        },
        "intune_details": {
          "description": "store details for intune",
          "type": "array",
          "items": {
            "$ref": "#/definitions/IntuneStoreResponse"
          }
        },
        "service_connection_id": {
          "description": "Id for the shared service connection. In case of Apple / GooglePlay stores, this connection will be used to connect to the Apple / Google stores in App Center.",
          "type": "string"
        },
        "created_by": {
          "description": "user id of the user who created the store.",
          "type": "string"
        }
      }
    },
    "StoreSecretResponse": {
      "description": "StoreSecretResponse",
      "properties": {
        "id": {
          "description": "Store id",
          "type": "string"
        },
        "name": {
          "description": "Store Name",
          "type": "string"
        },
        "type": {
          "description": "Store Type",
          "type": "string"
        },
        "secret": {
          "description": "Secret Json",
          "type": "string"
        },
        "tenant_id": {
          "description": "Tenant Id for Intune",
          "type": "string"
        }
      }
    },
    "IntuneStoreResponse": {
      "properties": {
        "target_audience": {
          "$ref": "#/definitions/IntuneTargetAudienceResponse"
        },
        "app_category": {
          "$ref": "#/definitions/IntuneAppCategoryResponse"
        }
      }
    },
    "IntuneStoreRequest": {
      "properties": {
        "secret_json": {
          "$ref": "#/definitions/IntuneSecretDetails"
        },
        "target_audience": {
          "$ref": "#/definitions/IntuneTargetAudience"
        },
        "app_category": {
          "$ref": "#/definitions/IntuneAppCategory"
        },
        "tenant_id": {
          "description": "tenant id of the intune store",
          "type": "string"
        }
      }
    },
    "PrivateIntuneStoreRequest": {
      "properties": {
        "target_audience": {
          "$ref": "#/definitions/IntuneTargetAudience"
        },
        "app_category": {
          "$ref": "#/definitions/IntuneAppCategory"
        },
        "tenant_id": {
          "description": "tenant id of the intune store",
          "type": "string"
        }
      }
    },
    "IntuneTargetAudience": {
      "properties": {
        "name": {
          "description": "display name for the target audience/group",
          "type": "string"
        }
      }
    },
    "IntuneAppCategory": {
      "properties": {
        "name": {
          "description": "display name for the app category",
          "type": "string"
        }
      }
    },
    "IntuneTargetAudienceResponse": {
      "properties": {
        "name": {
          "description": "display name for the target audience/group",
          "type": "string"
        },
        "id": {
          "description": "ID for the target audience/group.",
          "type": "string"
        }
      }
    },
    "IntuneAppCategoryResponse": {
      "properties": {
        "name": {
          "description": "display name for the app category",
          "type": "string"
        },
        "id": {
          "description": "ID for the category.",
          "type": "string"
        }
      }
    },
    "PatchReleaseRequest": {
      "properties": {
        "status": {
          "description": "updated status of release",
          "type": "string"
        },
        "dest_publish_id": {
          "description": "Destination Publish Id",
          "type": "string"
        },
        "error_details": {
          "description": "failure error details from store",
          "type": "string"
        },
        "error_contextId": {
          "description": "contextId for failed error message",
          "type": "string"
        },
        "wrap_package_url": {
          "description": "package url for wrapping request",
          "type": "string"
        },
        "is_wrapper_request": {
          "description": "request is for wrapping or not",
          "type": "boolean"
        }
      }
    },
    "StoresBasicReleaseDetails": {
      "description": "Basic information on a release",
      "properties": {
        "id": {
          "description": "ID identifying this unique release.",
          "type": "number"
        },
        "version": {
          "description": "The release's version.\nFor iOS: CFBundleVersion from info.plist.\nFor Android: android:versionCode from AppManifest.xml.\n",
          "type": "string"
        },
        "short_version": {
          "description": "The release's short version.\nFor iOS: CFBundleShortVersionString from info.plist.\nFor Android: android:versionName from AppManifest.xml.\n",
          "type": "string"
        },
        "uploaded_at": {
          "description": "UTC time in ISO 8601 format of the uploaded time.",
          "type": "string"
        },
        "distribution_stores": {
          "description": "a list of distribution stores that are associated with this release.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/StoresDetails"
          }
        }
      }
    },
    "StoresDetails": {
      "properties": {
        "id": {
          "description": "ID identifying a unique distribution store.",
          "type": "string"
        },
        "name": {
          "description": "A name identifying a unique distribution store.",
          "type": "string"
        },
        "type": {
          "description": "A type identifying the type of distribution store.",
          "type": "string",
          "enum": [
            "googleplay",
            "intune",
            "apple"
          ]
        },
        "publishing_status": {
          "description": "A status identifying the status of release in the distribution store.",
          "type": "string"
        },
        "is_latest": {
          "description": "Is the containing release the latest one in this distribution store.",
          "type": "boolean"
        }
      }
    },
    "StoreDestinationDetails": {
      "properties": {
        "dest_publish_id": {
          "description": "destination ID identifying a unique id in distribution store.",
          "type": "string"
        },
        "store_type": {
          "description": "type of store.",
          "type": "string",
          "enum": [
            "intune"
          ]
        },
        "appId": {
          "description": "app id of application.",
          "type": "string"
        }
      }
    },
    "StoresBasicDetails": {
      "properties": {
        "id": {
          "description": "ID identifying a unique distribution store.",
          "type": "string"
        },
        "name": {
          "description": "A name identifying a unique distribution store.",
          "type": "string"
        },
        "type": {
          "description": "type of the distribution store currently stores type can be intune or googleplay.",
          "type": "string",
          "enum": [
            "intune",
            "googleplay"
          ]
        },
        "publishing_status": {
          "description": "publishing status of the release in the store.",
          "type": "string"
        }
      }
    },
    "IntuneAppsRequest": {
      "description": "IntuneAppsRequest",
      "properties": {
        "created_month": {
          "description": "PartitionKey year-month",
          "type": "string"
        }
      }
    },
    "IntuneAppsResponse": {
      "description": "IntuneAppsResponse",
      "properties": {
        "created_month": {
          "description": "PartitionKey year-month",
          "type": "string"
        },
        "app_id": {
          "description": "App id",
          "type": "string"
        },
        "refreshStatus": {
          "description": "Refresh Status",
          "type": "string"
        }
      }
    },
    "OrgComplianceSettingsRequest": {
      "description": "org settings Request",
      "properties": {
        "certificate_connection_id": {
          "description": "certificate connection id to wrap and resign the app after wrapping",
          "type": "string"
        }
      },
      "required": [
        "certificate_connection_id"
      ]
    },
    "OrgComplianceSettingsResponse": {
      "description": "org settings response",
      "properties": {
        "id": {
          "description": "The internal unique id (UUID) of the organization compliance setting",
          "type": "string"
        },
        "org_id": {
          "description": "The internal unique id (UUID) of the organization.",
          "type": "string"
        },
        "certificate_connection_id": {
          "description": "certificate connection id to wrap and resign the app after wrapping",
          "type": "string"
        },
        "is_mam_enabled": {
          "description": "flag to tell if mam warpping is enabled on the Org",
          "type": "boolean"
        }
      },
      "required": [
        "certificate_connection_id",
        "org_id",
        "id"
      ]
    },
    "StoreNotification": {
      "properties": {
        "service": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "valid_until": {
          "type": "integer"
        }
      }
    },
    "DiagnosticIdResponse": {
      "description": "The diagnostic id for the given publish action",
      "properties": {
        "diagnostic_id": {
          "description": "diagnostic id",
          "type": "string"
        }
      }
    },
    "Symbol": {
      "properties": {
        "symbol_id": {
          "description": "The unique id for this symbol (uuid)",
          "type": "string"
        },
        "type": {
          "description": "The type of the symbol for the current symbol upload",
          "type": "string",
          "enum": [
            "Apple",
            "JavaScript",
            "Breakpad",
            "AndroidProguard",
            "UWP"
          ]
        },
        "app_id": {
          "description": "The application that this symbol belongs to",
          "type": "string"
        },
        "platform": {
          "description": "The platform that this symbol is associated with",
          "type": "string"
        },
        "url": {
          "description": "The path name of the symbol file in blob storage",
          "type": "string"
        },
        "origin": {
          "description": "The origin of the symbol file",
          "type": "string",
          "enum": [
            "System",
            "User"
          ]
        },
        "alternate_symbol_ids": {
          "description": "The other symbols in the same file",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "status": {
          "description": "Whether the symbol is ignored.",
          "type": "string",
          "enum": [
            "available",
            "ignored"
          ]
        },
        "version": {
          "description": "The version number. Optional for Apple. Required for Android.",
          "type": "string"
        },
        "build": {
          "description": "The build number. Optional for Apple. Required for Android.",
          "type": "string"
        },
        "symbol_upload_id": {
          "description": "The id of the symbol upload this symbol belongs to.",
          "type": "string"
        }
      },
      "required": [
        "symbol_id",
        "platform",
        "type",
        "app_id",
        "url",
        "origin",
        "alternate_symbol_ids",
        "status",
        "symbol_upload_id"
      ]
    },
    "Symbols": {
      "description": "A response containing the list of symbols matching the specified filter (if any was provided)",
      "type": "array",
      "items": {
        "$ref": "#/definitions/Symbol"
      }
    },
    "SymbolStatusResponse": {
      "description": "A response containing information pertaining to a symbol status",
      "properties": {
        "symbol_id": {
          "description": "The unique id for this symbol (uuid)",
          "type": "string"
        },
        "app_id": {
          "description": "The application that this symbol belongs to",
          "type": "string"
        },
        "status": {
          "description": "Whether the symbol is ignored.",
          "type": "string",
          "enum": [
            "available",
            "ignored",
            "missing"
          ]
        }
      },
      "required": [
        "symbol_id",
        "app_id",
        "status"
      ]
    },
    "SymbolUpload": {
      "description": "A single symbol upload entity",
      "properties": {
        "symbol_upload_id": {
          "description": "The id for the current symbol upload",
          "type": "string"
        },
        "app_id": {
          "description": "The application that this symbol upload belongs to",
          "type": "string"
        },
        "user": {
          "description": "User information of the one who intitiated the symbol upload",
          "$ref": "#/definitions/SymbolUploadUserInfo"
        },
        "status": {
          "description": "The current status for the symbol upload",
          "type": "string",
          "enum": [
            "created",
            "committed",
            "aborted",
            "processing",
            "indexed",
            "failed"
          ]
        },
        "symbol_type": {
          "description": "The type of the symbol for the current symbol upload",
          "type": "string",
          "enum": [
            "Apple",
            "Breakpad",
            "AndroidProguard",
            "UWP"
          ]
        },
        "symbols_uploaded": {
          "description": "The symbols found in the upload",
          "type": "array",
          "items": {
            "$ref": "#/definitions/UploadedSymbolInfo"
          }
        },
        "origin": {
          "description": "The origin of the symbol upload",
          "type": "string",
          "enum": [
            "User",
            "System"
          ]
        },
        "file_name": {
          "description": "The file name for the symbol upload",
          "type": "string"
        },
        "file_size": {
          "description": "The size of the file in Mebibytes",
          "type": "number"
        },
        "timestamp": {
          "description": "When the symbol upload was committed, or last transaction time if not committed",
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "symbol_upload_id",
        "app_id",
        "status",
        "symbol_type"
      ]
    },
    "SymbolUploads": {
      "description": "A set of symbol upload entities",
      "type": "array",
      "items": {
        "$ref": "#/definitions/SymbolUpload"
      }
    },
    "SymbolLocation": {
      "description": "Location for downloading symbol",
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        }
      },
      "required": [
        "uri"
      ]
    },
    "SymbolUploadLocation": {
      "description": "Location for downloading symbol upload",
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        }
      },
      "required": [
        "uri"
      ]
    },
    "SymbolUploadBeginRequest": {
      "description": "A request containing information pertaining to starting a symbol upload process",
      "properties": {
        "symbol_type": {
          "description": "The type of the symbol for the current symbol upload",
          "type": "string",
          "enum": [
            "Apple",
            "Breakpad",
            "AndroidProguard",
            "UWP"
          ]
        },
        "client_callback": {
          "description": "The callback URL that the client can optionally provide to get status updates for the current symbol upload",
          "type": "string"
        },
        "file_name": {
          "description": "The file name for the symbol upload",
          "type": "string"
        },
        "build": {
          "description": "The build number. Optional for Apple. Required for Android.",
          "type": "string"
        },
        "version": {
          "description": "The version number. Optional for Apple. Required for Android.",
          "type": "string"
        }
      },
      "required": [
        "symbol_type"
      ]
    },
    "SymbolUploadBeginResponse": {
      "description": "A response containing information pertaining to starting a symbol upload process",
      "properties": {
        "symbol_upload_id": {
          "description": "The id for the current upload",
          "type": "string"
        },
        "upload_url": {
          "description": "The URL where the client needs to upload the symbol blob to",
          "type": "string"
        },
        "expiration_date": {
          "description": "Describes how long the upload_url is valid",
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "symbol_upload_id",
        "upload_url",
        "expiration_date"
      ]
    },
    "SymbolUploadEndRequest": {
      "description": "A request containing information pertaining to completing a symbol upload process",
      "properties": {
        "status": {
          "description": "The desired operation for the symbol upload",
          "type": "string",
          "enum": [
            "committed",
            "aborted"
          ]
        }
      },
      "required": [
        "status"
      ]
    },
    "SymbolUploadUserInfo": {
      "properties": {
        "email": {
          "description": "The email of the user",
          "type": "string"
        },
        "display_name": {
          "description": "The full name of the user. Might for example be first and last name",
          "type": "string"
        }
      }
    },
    "UploadedSymbolInfo": {
      "properties": {
        "symbol_id": {
          "description": "The symbol id of the symbol binary",
          "type": "string"
        },
        "platform": {
          "description": "The platform the symbol is associated with",
          "type": "string"
        }
      },
      "required": [
        "symbol_id",
        "platform"
      ]
    },
    "SystemVersionNameGroup": {
      "description": "A response represents information about symbol name group",
      "properties": {
        "name": {
          "description": "Name of version group",
          "type": "string"
        },
        "versions": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "SystemVersionNameGroups": {
      "description": "A list of symbol name group entities",
      "type": "array",
      "items": {
        "$ref": "#/definitions/SystemVersionNameGroup"
      }
    },
    "CrashGroupStatusEnum": {
      "enum": [
        "open",
        "closed",
        "ignored"
      ]
    },
    "AppCrashesInfo": {
      "required": [
        "has_crashes",
        "features"
      ],
      "type": "object",
      "properties": {
        "has_crashes": {
          "type": "boolean"
        },
        "features": {
          "$ref": "#/definitions/AppFeatures"
        }
      }
    },
    "AppFeatures": {
      "type": "object",
      "properties": {
        "crashgroup_modify_status": {
          "description": "App supports modification of crashgroup status",
          "type": "boolean"
        },
        "crashgroup_modify_annotation": {
          "description": "App supports modification of crashgroup annotation",
          "type": "boolean"
        },
        "search": {
          "description": "App supports search API",
          "type": "boolean"
        },
        "crashgroup_analytics_crashfreeusers": {
          "description": "App supports the 'crash free user' metric",
          "type": "boolean"
        },
        "crashgroup_analytics_impactedusers": {
          "description": "App supports the 'impacted users' metric",
          "type": "boolean"
        },
        "crash_download_raw": {
          "description": "App supports download of raw crashes",
          "type": "boolean"
        }
      }
    },
    "AppVersion": {
      "required": [
        "app_version_id",
        "app_id",
        "display_name",
        "app_version"
      ],
      "type": "object",
      "properties": {
        "app_version_id": {
          "type": "string"
        },
        "app_id": {
          "type": "string"
        },
        "display_name": {
          "type": "string"
        },
        "app_version": {
          "type": "string"
        },
        "build_number": {
          "type": "string"
        }
      }
    },
    "Exception": {
      "description": "a exception",
      "properties": {
        "reason": {
          "type": "string",
          "description": "Reason of the exception"
        },
        "type": {
          "type": "string",
          "description": "Type of the exception (NSSomethingException, NullPointerException)"
        },
        "frames": {
          "description": "frames of the excetpion",
          "type": "array",
          "items": {
            "$ref": "#/definitions/StackFrame"
          }
        },
        "relevant": {
          "description": "relevant exception (crashed)",
          "type": "boolean"
        },
        "inner_exceptions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Exception"
          }
        },
        "platform": {
          "description": "SDK/Platform this thread is beeing generated from",
          "type": "string",
          "enum": [
            "ios",
            "android",
            "xamarin",
            "react-native",
            "ndk",
            "unity",
            "other"
          ]
        }
      },
      "required": [
        "frames"
      ]
    },
    "Stacktrace": {
      "description": "a stacktrace in a processed and prettyfied way",
      "properties": {
        "title": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "threads": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Thread"
          }
        },
        "exception": {
          "$ref": "#/definitions/Exception"
        }
      }
    },
    "Thread": {
      "description": "a thread representation",
      "properties": {
        "title": {
          "description": "name of the thread",
          "type": "string"
        },
        "frames": {
          "description": "frames of that thread",
          "type": "array",
          "items": {
            "$ref": "#/definitions/StackFrame"
          }
        },
        "exception": {
          "description": "potential additional exception happened in that thread (Last Exception Backtrace)",
          "$ref": "#/definitions/Exception"
        },
        "relevant": {
          "description": "Shows if a thread is relevant or not. Is false if all frames are non relevant, otherwise true",
          "type": "boolean"
        },
        "platform": {
          "description": "SDK/Platform this thread is beeing generated from",
          "type": "string",
          "enum": [
            "ios",
            "android",
            "xamarin",
            "react-native",
            "ndk",
            "unity",
            "other"
          ]
        },
        "crashed": {
          "description": "True if this thread crashed",
          "type": "boolean"
        }
      },
      "required": [
        "title",
        "frames"
      ]
    },
    "StackFrame": {
      "description": "a single frame of a stack trace",
      "properties": {
        "address": {
          "description": "address of the frame",
          "type": "string"
        },
        "class_name": {
          "description": "name of the class",
          "type": "string"
        },
        "method": {
          "description": "name of the method",
          "type": "string"
        },
        "class_method": {
          "description": "is a class method",
          "type": "boolean"
        },
        "file": {
          "description": "name of the file",
          "type": "string"
        },
        "line": {
          "description": "line number",
          "type": "integer"
        },
        "app_code": {
          "description": "this line isn't from any framework",
          "type": "boolean"
        },
        "framework_name": {
          "description": "Name of the framework",
          "type": "string"
        },
        "code_raw": {
          "description": "Raw frame string",
          "type": "string"
        },
        "code_formatted": {
          "description": "Formatted frame string",
          "type": "string"
        },
        "language": {
          "description": "programming language of the frame",
          "type": "string",
          "enum": [
            "JavaScript",
            "CSharp",
            "Objective-C",
            "Objective-Cpp",
            "Cpp",
            "C",
            "Swift",
            "Java",
            "Unknown"
          ]
        },
        "relevant": {
          "description": "frame should be shown always",
          "type": "boolean"
        },
        "method_params": {
          "description": "parameters of the frames method",
          "type": "string"
        }
      },
      "required": [
        "code_raw",
        "code_formatted",
        "app_code"
      ]
    },
    "ReasonStackFrame": {
      "description": "frame belonging to the reason of the crash",
      "properties": {
        "class_name": {
          "description": "name of the class",
          "type": "string"
        },
        "method": {
          "description": "name of the method",
          "type": "string"
        },
        "class_method": {
          "description": "is a class method",
          "type": "boolean"
        },
        "file": {
          "description": "name of the file",
          "type": "string"
        },
        "line": {
          "description": "line number",
          "type": "integer"
        },
        "app_code": {
          "description": "this line isn't from any framework",
          "type": "boolean"
        },
        "framework_name": {
          "description": "Name of the framework",
          "type": "string"
        },
        "code_formatted": {
          "description": "Formatted frame string",
          "type": "string"
        },
        "code_raw": {
          "description": "Unformatted Frame string",
          "type": "string"
        },
        "language": {
          "description": "programming language of the frame",
          "type": "string",
          "enum": [
            "JavaScript",
            "CSharp",
            "Objective-C",
            "Objective-Cpp",
            "Cpp",
            "C",
            "Swift",
            "Java",
            "Unknown"
          ]
        },
        "method_params": {
          "description": "parameters of the frames method",
          "type": "string"
        },
        "exception_type": {
          "type": "string",
          "description": "Exception type."
        },
        "os_exception_type": {
          "type": "string",
          "description": "OS exception type. (aka. SIGNAL)"
        }
      }
    },
    "RetentionSettings": {
      "required": [
        "retention_in_days"
      ],
      "type": "object",
      "properties": {
        "retention_in_days": {
          "type": "integer",
          "enum": [
            28,
            90
          ]
        }
      }
    },
    "CrashAttachment": {
      "required": [
        "app_id",
        "attachment_id",
        "crash_id",
        "blob_location",
        "content_type",
        "file_name",
        "created_time",
        "size"
      ],
      "type": "object",
      "properties": {
        "app_id": {
          "type": "string"
        },
        "attachment_id": {
          "type": "string"
        },
        "crash_id": {
          "type": "string"
        },
        "blob_location": {
          "type": "string"
        },
        "content_type": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        },
        "created_time": {
          "type": "string",
          "format": "date-time"
        },
        "size": {
          "type": "number"
        }
      }
    },
    "RawCrashLog": {
      "type": "object"
    },
    "NativeCrashLog": {
      "type": "string"
    },
    "CrashRawLocation": {
      "description": "Location for downloading crash raw",
      "required": [
        "uri"
      ],
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        }
      }
    },
    "CrashAttachmentLocation": {
      "description": "Location for downloading crash attachment",
      "required": [
        "uri"
      ],
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        }
      }
    },
    "CrashGroupsContainer": {
      "required": [
        "limited_result_set",
        "crash_groups"
      ],
      "type": "object",
      "properties": {
        "limited_result_set": {
          "type": "boolean"
        },
        "continuation_token": {
          "type": "string",
          "description": "Cassandra request continuation token. The token is used for pagination."
        },
        "crash_groups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrashGroup"
          }
        }
      }
    },
    "CrashGroup": {
      "required": [
        "crash_group_id",
        "new_crash_group_id",
        "display_id",
        "app_version",
        "build",
        "status",
        "count",
        "first_occurrence",
        "last_occurrence",
        "crash_reason",
        "fatal",
        "annotation"
      ],
      "type": "object",
      "properties": {
        "crash_group_id": {
          "type": "string"
        },
        "new_crash_group_id": {
          "type": "string"
        },
        "display_id": {
          "type": "string"
        },
        "app_version": {
          "type": "string"
        },
        "build": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "open",
            "closed",
            "ignored"
          ]
        },
        "count": {
          "type": "integer"
        },
        "impacted_users": {
          "type": "integer"
        },
        "first_occurrence": {
          "type": "string",
          "format": "date-time"
        },
        "last_occurrence": {
          "type": "string",
          "format": "date-time"
        },
        "exception": {
          "type": "string"
        },
        "crash_reason": {
          "type": "string"
        },
        "reason_frame": {
          "$ref": "#/definitions/ReasonStackFrame"
        },
        "fatal": {
          "type": "boolean",
          "description": "Crash or handled exception"
        },
        "annotation": {
          "type": "string"
        }
      }
    },
    "CrashGroupChange": {
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "open",
            "closed",
            "ignored"
          ]
        },
        "annotation": {
          "type": "string"
        }
      }
    },
    "Crash": {
      "required": [
        "new_crash_group_id",
        "crash_id",
        "new_crash_id",
        "timestamp",
        "version",
        "build",
        "device",
        "os_version",
        "user_name"
      ],
      "type": "object",
      "properties": {
        "details": {
          "$ref": "#/definitions/CrashDetails"
        },
        "new_crash_group_id": {
          "type": "string",
          "description": ""
        },
        "crash_id": {
          "type": "string",
          "description": ""
        },
        "new_crash_id": {
          "type": "string",
          "description": ""
        },
        "display_id": {
          "type": "string"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time"
        },
        "version": {
          "type": "string",
          "description": ""
        },
        "build": {
          "type": "string",
          "description": ""
        },
        "device": {
          "type": "string",
          "description": ""
        },
        "device_name": {
          "type": "string",
          "description": ""
        },
        "os_version": {
          "type": "string",
          "description": ""
        },
        "os_type": {
          "type": "string",
          "description": ""
        },
        "stacktrace": {
          "$ref": "#/definitions/Stacktrace"
        },
        "user_name": {
          "type": "string",
          "description": ""
        },
        "user_email": {
          "type": "string",
          "description": ""
        }
      }
    },
    "CrashDetails": {
      "required": [
        "locale",
        "screen_size",
        "rooted"
      ],
      "properties": {
        "carrier_country": {
          "type": "string",
          "description": "Carrier country code (for mobile devices).\n"
        },
        "carrier_name": {
          "type": "string",
          "description": "Carrier name (for mobile devices).\n"
        },
        "locale": {
          "type": "string",
          "description": "Language code (example: en_US).\n"
        },
        "os_build": {
          "type": "string",
          "description": "OS build code (example: LMY47X).\n"
        },
        "rooted": {
          "type": "boolean",
          "description": "Whether the device where the crash occurred is rooted or jailbroken\n"
        },
        "screen_size": {
          "type": "string",
          "description": "Screen size of the device in pixels (example: 640x480).\n"
        },
        "app_start_timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Application launch timestamp (example: 1985-04-12T23:20:50.52Z).\n"
        }
      }
    },
    "HockeyAppCrashForwardingInfo": {
      "required": [
        "forwarding_enabled"
      ],
      "type": "object",
      "properties": {
        "forwarding_enabled": {
          "type": "boolean"
        }
      }
    },
    "HockeyAppCrashForwardingChange": {
      "type": "object",
      "properties": {
        "enable_forwarding": {
          "type": "boolean"
        }
      }
    },
    "AlertingCrashGroup": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string"
        },
        "app_display_name": {
          "type": "string"
        },
        "app_platform": {
          "description": "SDK/Platform this thread is beeing generated from",
          "type": "string",
          "enum": [
            "ios",
            "android",
            "xamarin",
            "react-native",
            "ndk",
            "unity",
            "other"
          ]
        },
        "app_version": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "stack_trace": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CrashDeleteCounter": {
      "type": "object",
      "properties": {
        "app_id": {
          "type": "string"
        },
        "crash_group_id": {
          "type": "string"
        },
        "crash_id": {
          "type": "string"
        },
        "crashes_deleted": {
          "type": "integer"
        },
        "attachments_deleted": {
          "type": "integer"
        },
        "blobs_succeeded": {
          "type": "integer"
        },
        "blobs_failed": {
          "type": "integer"
        }
      }
    },
    "v2SymbolStatusEnum": {
      "description": "enumeration of symbol statuses",
      "enum": [
        "missing",
        "ignored",
        "available"
      ]
    },
    "v2MissingSymbol": {
      "description": "missing symbol",
      "required": [
        "symbol_id",
        "name",
        "status"
      ],
      "properties": {
        "symbol_id": {
          "type": "string",
          "description": "symbol id"
        },
        "name": {
          "type": "string",
          "description": "symbol name"
        },
        "platform": {
          "type": "string",
          "description": "symbol plarform"
        },
        "status": {
          "type": "string",
          "enum": [
            "missing",
            "ignored",
            "available"
          ],
          "description": "symbol status"
        }
      }
    },
    "v2MissingSymbols": {
      "description": "A list of missing symbols",
      "type": "array",
      "items": {
        "$ref": "#/definitions/v2MissingSymbol"
      }
    },
    "v2SymbolUpdateInfo": {
      "description": "symbol update message",
      "required": [
        "symbol_id",
        "app_id",
        "status"
      ],
      "properties": {
        "symbol_id": {
          "type": "string",
          "description": "UUID of the symbol"
        },
        "app_id": {
          "type": "string",
          "description": "application id"
        },
        "status": {
          "type": "string",
          "enum": [
            "missing",
            "ignored",
            "available"
          ],
          "description": "symbol upload status"
        }
      }
    },
    "v2MissingSymbolCrashGroupStatusEnum": {
      "description": "enumeration of missing symbol grash group statuses",
      "enum": [
        "active",
        "pending",
        "closed"
      ]
    },
    "v2MissingSymbolCrashGroup": {
      "description": "missing symbol crash group object",
      "required": [
        "symbol_group_id",
        "app_id",
        "app_ver",
        "app_build",
        "last_modified",
        "missing_symbols",
        "status"
      ],
      "properties": {
        "symbol_group_id": {
          "type": "string",
          "description": "id of the symbol group"
        },
        "crash_count": {
          "type": "integer",
          "description": "number of crashes that belong to this group"
        },
        "app_id": {
          "type": "string",
          "description": "application id"
        },
        "app_ver": {
          "type": "string",
          "description": "application version"
        },
        "app_build": {
          "type": "string",
          "description": "application build"
        },
        "last_modified": {
          "type": "string",
          "format": "date-time",
          "description": "last update date for the group"
        },
        "missing_symbols": {
          "$ref": "#/definitions/v2MissingSymbols",
          "description": "list of missing symbols"
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "pending",
            "closed"
          ],
          "description": "group status"
        }
      }
    },
    "v2MissingSymbolCrashGroups": {
      "description": "A list of crash groups formed by missing symbols combination",
      "type": "array",
      "items": {
        "$ref": "#/definitions/v2MissingSymbolCrashGroup"
      }
    },
    "v2MissingSymbolCrashGroupsResponse": {
      "description": "grouped by missing symbols crashes response object",
      "required": [
        "total_crash_count",
        "groups"
      ],
      "properties": {
        "total_crash_count": {
          "description": "total number of cashes for all the groups",
          "type": "integer"
        },
        "groups": {
          "$ref": "#/definitions/v2MissingSymbolCrashGroups",
          "description": "list of crash groups formed by missing symbols combination"
        }
      }
    },
    "v2MissingSymbolCrashGroupsInfoResponse": {
      "description": "missing symbol groups",
      "required": [
        "total_crash_count"
      ],
      "properties": {
        "total_crash_count": {
          "description": "total number of crashes for all missing symbol groups",
          "type": "integer"
        }
      }
    },
    "v2StatusResponse": {
      "description": "status response object",
      "required": [
        "status"
      ],
      "properties": {
        "status": {
          "type": "string"
        }
      }
    },
    "v2FailureResponse": {
      "description": "failure response object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "ActiveCrashingAppDetails": {
      "type": "object",
      "properties": {
        "nextLink": {
          "type": "string"
        },
        "appsWithCrashes": {
          "description": "details of the apps with crashes",
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrashingAppDetail"
          }
        }
      }
    },
    "LogTraceDefinition": {
      "type": "object",
      "required": [
        "app_secret"
      ],
      "properties": {
        "app_secret": {
          "type": "string"
        },
        "install_id": {
          "type": "string"
        },
        "expiration": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "CrashingAppDetail": {
      "type": "object",
      "properties": {
        "appId": {
          "description": "application identifier",
          "type": "string"
        },
        "appVersion": {
          "description": "application version",
          "type": "string"
        },
        "crashGroupId": {
          "description": "crash group identifier",
          "type": "string"
        }
      }
    },
    "LogContainer": {
      "type": "object",
      "properties": {
        "exceeded_max_limit": {
          "description": "indicates if the number of available logs are more than the max allowed return limit(100).",
          "type": "boolean"
        },
        "last_received_log_timestamp": {
          "description": "the timestamp of the last log received. This value can be used as the start time parameter in the consecutive API call.",
          "type": "string",
          "format": "date-time"
        },
        "logs": {
          "minItems": 0,
          "description": "the list of logs",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Log"
          }
        }
      },
      "required": [
        "logs"
      ]
    },
    "GenericLogContainer": {
      "type": "object",
      "properties": {
        "exceeded_max_limit": {
          "description": "indicates if the number of available logs are more than the max allowed return limit(100).",
          "type": "boolean"
        },
        "last_received_log_timestamp": {
          "description": "the timestamp of the last log received. This value can be used as the start time parameter in the consecutive API call.",
          "type": "string",
          "format": "date-time"
        },
        "logs": {
          "minItems": 0,
          "description": "the list of logs",
          "type": "array",
          "items": {
            "$ref": "#/definitions/GenericLog"
          }
        }
      },
      "required": [
        "logs"
      ]
    },
    "GenericLog": {
      "type": "object",
      "description": "Generic log.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "event",
            "page",
            "start_session",
            "error",
            "push_installation",
            "start_service",
            "custom_properties"
          ],
          "description": "Log type.\n"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Log creation timestamp.\n"
        },
        "install_id": {
          "type": "string",
          "format": "uuid",
          "description": "Install ID.\n"
        },
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "event_id": {
          "type": "string",
          "description": "Event ID.\n"
        },
        "event_name": {
          "type": "string",
          "description": "Event name.\n"
        },
        "message_id": {
          "type": "string",
          "description": "Message ID.\n"
        },
        "properties": {
          "type": "object",
          "description": "event specific properties.\n",
          "additionalProperties": {
            "type": "string"
          }
        },
        "device": {
          "$ref": "#/definitions/Device"
        }
      },
      "required": [
        "type",
        "timestamp",
        "install_id",
        "device"
      ]
    },
    "Log": {
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "event",
            "page",
            "start_session",
            "error",
            "push_installation",
            "start_service",
            "custom_properties"
          ],
          "description": "Log type.\n"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Log creation timestamp.\n"
        },
        "install_id": {
          "type": "string",
          "format": "uuid",
          "description": "Install ID.\n"
        },
        "device": {
          "$ref": "#/definitions/Device"
        }
      },
      "required": [
        "type",
        "timestamp",
        "install_id",
        "device"
      ]
    },
    "LogWithProperties": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/Log"
        }
      ],
      "properties": {
        "properties": {
          "type": "object",
          "description": "Additional key/value pair parameters.\n",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "Device": {
      "type": "object",
      "description": "Device characteristics.",
      "properties": {
        "sdk_name": {
          "type": "string",
          "description": "Name of the SDK. Consists of the name of the SDK and the platform, e.g. \"appcenter.ios\", \"hockeysdk.android\".\n"
        },
        "sdk_version": {
          "type": "string",
          "description": "Version of the SDK in semver format, e.g. \"1.2.0\" or \"0.12.3-alpha.1\".\n"
        },
        "wrapper_sdk_version": {
          "type": "string",
          "description": "Version of the wrapper SDK in semver format. When the SDK is embedding another base SDK (for example Xamarin.Android wraps Android), the Xamarin specific version is populated into this field while sdkVersion refers to the original Android SDK.\n"
        },
        "wrapper_sdk_name": {
          "type": "string",
          "description": "Name of the wrapper SDK. Consists of the name of the SDK and the wrapper platform, e.g. \"appcenter.xamarin\", \"hockeysdk.cordova\".\n"
        },
        "model": {
          "type": "string",
          "description": "Device model (example: iPad2,3).\n"
        },
        "oem_name": {
          "type": "string",
          "description": "Device manufacturer (example: HTC).\n"
        },
        "os_name": {
          "type": "string",
          "description": "OS name (example: iOS). The following OS names are standardized (non-exclusive): Android, iOS, macOS, tvOS, Windows.\n"
        },
        "os_version": {
          "type": "string",
          "description": "OS version (example: 9.3.0).\n"
        },
        "os_build": {
          "type": "string",
          "description": "OS build code (example: LMY47X).\n"
        },
        "os_api_level": {
          "type": "integer",
          "description": "API level when applicable like in Android (example: 15).\n"
        },
        "locale": {
          "type": "string",
          "description": "Language code (example: en_US).\n"
        },
        "time_zone_offset": {
          "type": "integer",
          "minimum": -840,
          "maximum": 840,
          "description": "The offset in minutes from UTC for the device time zone, including daylight savings time.\n"
        },
        "screen_size": {
          "type": "string",
          "description": "Screen size of the device in pixels (example: 640x480).\n"
        },
        "app_version": {
          "type": "string",
          "description": "Application version name, e.g. 1.1.0\n"
        },
        "carrier_name": {
          "type": "string",
          "description": "Carrier name (for mobile devices).\n"
        },
        "carrier_code": {
          "type": "string",
          "description": "Carrier country code (for mobile devices).\n"
        },
        "carrier_country": {
          "type": "string",
          "description": "Carrier country.\n"
        },
        "app_build": {
          "type": "string",
          "description": "The app's build number, e.g. 42.\n"
        },
        "app_namespace": {
          "type": "string",
          "description": "The bundle identifier, package identifier, or namespace, depending on what the individual plattforms use,  .e.g com.microsoft.example.\n"
        },
        "live_update_release_label": {
          "type": "string",
          "description": "Label that is used to identify application code 'version' released via Live Update beacon running on device\n"
        },
        "live_update_deployment_key": {
          "type": "string",
          "description": "Identifier of environment that current application release belongs to, deployment key then maps to environment like Production, Staging.\n"
        },
        "live_update_package_hash": {
          "type": "string",
          "description": "Hash of all files (ReactNative or Cordova) deployed to device via LiveUpdate beacon. Helps identify the Release version on device or need to download updates in future.\n"
        },
        "wrapper_runtime_version": {
          "type": "string",
          "description": "Version of the wrapper technology framework (Xamarin runtime version or ReactNative or Cordova etc...). See wrapper_sdk_name to see if this version refers to Xamarin or ReactNative or other.\n"
        }
      },
      "required": [
        "sdk_name",
        "sdk_version",
        "os_name",
        "os_version",
        "locale",
        "time_zone_offset",
        "app_version",
        "app_build"
      ]
    },
    "StartSessionLog": {
      "type": "object",
      "description": "Required explicit begin session log (a marker event for analytics service).",
      "x-ms-discriminator-value": "start_session",
      "allOf": [
        {
          "$ref": "#/definitions/Log"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        }
      },
      "required": [
        "session_id"
      ]
    },
    "HandledErrorLog": {
      "type": "object",
      "description": "Required explicit begin session log (a marker event for analytics service).",
      "x-ms-discriminator-value": "handled_error",
      "allOf": [
        {
          "$ref": "#/definitions/Log"
        }
      ],
      "properties": {
        "error_id": {
          "type": "string",
          "format": "uuid",
          "description": "Error ID.\n"
        }
      },
      "required": [
        "error_id"
      ]
    },
    "UnhandledErrorLog": {
      "type": "object",
      "description": "Required explicit begin session log (a marker event for analytics service).",
      "x-ms-discriminator-value": "unhandled_error",
      "allOf": [
        {
          "$ref": "#/definitions/Log"
        }
      ],
      "properties": {
        "error_id": {
          "type": "string",
          "format": "uuid",
          "description": "Error ID.\n"
        }
      },
      "required": [
        "error_id"
      ]
    },
    "StartServiceLog": {
      "type": "object",
      "description": "Describe a AppCenter.Start API call from the SDK.",
      "x-ms-discriminator-value": "start_service",
      "allOf": [
        {
          "$ref": "#/definitions/Log"
        }
      ],
      "properties": {
        "services": {
          "type": "array",
          "description": "The list of services of the AppCenter Start API call.",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CustomPropertyLog": {
      "type": "object",
      "description": "Set or remove custom properties.",
      "x-ms-discriminator-value": "custom_properties",
      "allOf": [
        {
          "$ref": "#/definitions/Log"
        }
      ],
      "properties": {
        "properties": {
          "type": "array",
          "description": "Custom property changes.",
          "minItems": 1,
          "maxItems": 60,
          "items": {
            "$ref": "#/definitions/CustomProperty"
          }
        }
      }
    },
    "CustomProperty": {
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "maxLength": 128,
          "pattern": "^[a-zA-Z][a-zA-Z0-9\\-_]*$"
        }
      },
      "required": [
        "type",
        "name"
      ]
    },
    "StringProperty": {
      "type": "object",
      "description": "String property.",
      "x-ms-discriminator-value": "string",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty"
        }
      ],
      "properties": {
        "value": {
          "type": "string",
          "maxLength": 128,
          "description": "String property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "NumberProperty": {
      "type": "object",
      "description": "Number property.",
      "x-ms-discriminator-value": "number",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty"
        }
      ],
      "properties": {
        "value": {
          "type": "number",
          "description": "Number property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "BooleanProperty": {
      "type": "object",
      "description": "Boolean property.",
      "x-ms-discriminator-value": "boolean",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty"
        }
      ],
      "properties": {
        "value": {
          "type": "boolean",
          "description": "Boolean property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "DateTimeProperty": {
      "type": "object",
      "description": "Date and time property.",
      "x-ms-discriminator-value": "date_time",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty"
        }
      ],
      "properties": {
        "value": {
          "type": "string",
          "format": "date-time",
          "description": "Date time property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "ClearProperty": {
      "type": "object",
      "description": "Clear an existing property.",
      "x-ms-discriminator-value": "clear",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty"
        }
      ]
    },
    "PageLog": {
      "type": "object",
      "description": "Page view log (as in screens or activities).",
      "x-ms-discriminator-value": "page",
      "allOf": [
        {
          "$ref": "#/definitions/LogWithProperties"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the page.\n"
        }
      },
      "required": [
        "name",
        "session_id"
      ]
    },
    "EventLog": {
      "type": "object",
      "description": "Event log.",
      "x-ms-discriminator-value": "event",
      "allOf": [
        {
          "$ref": "#/definitions/LogWithProperties"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for this event.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the event.\n"
        }
      },
      "required": [
        "id",
        "name",
        "session_id"
      ]
    },
    "PushInstallationLog": {
      "type": "object",
      "description": "Push installation Information.",
      "x-ms-discriminator-value": "push_installation",
      "allOf": [
        {
          "$ref": "#/definitions/Log"
        }
      ],
      "properties": {
        "push_token": {
          "type": "string",
          "description": "The PNS handle for this installation.\n"
        }
      },
      "required": [
        "push_token"
      ]
    },
    "ErrorLog": {
      "type": "object",
      "description": "Error log.",
      "x-ms-discriminator-value": "error",
      "allOf": [
        {
          "$ref": "#/definitions/Log"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Error identifier."
        },
        "app_launch_toffset": {
          "type": "integer",
          "format": "int64",
          "description": "Corresponds to the number of milliseconds elapsed between the time the error occurred and the app was launched.\n"
        }
      },
      "required": [
        "session_id",
        "id"
      ]
    },
    "AudienceListResult": {
      "description": "List of audiences.",
      "properties": {
        "values": {
          "description": "List of audiences.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AudienceSummary"
          }
        },
        "nextLink": {
          "type": "string"
        }
      },
      "required": [
        "values"
      ]
    },
    "AudienceSummary": {
      "description": "Audience definition.",
      "properties": {
        "name": {
          "description": "Audience name.",
          "type": "string"
        },
        "description": {
          "description": "Audience description.",
          "type": "string"
        },
        "estimated_count": {
          "description": "Estimated audience size.",
          "type": "integer",
          "format": "int64"
        },
        "definition": {
          "description": "Audience definition in OData format.",
          "type": "string"
        },
        "state": {
          "x-ms-enum": {
            "name": "AudienceProcessingState"
          },
          "description": "Audience state.",
          "type": "string",
          "enum": [
            "Calculating",
            "Ready",
            "Disabled"
          ]
        }
      }
    },
    "Audience": {
      "description": "Audience with details.",
      "allOf": [
        {
          "$ref": "#/definitions/AudienceSummary"
        }
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "default": true
        },
        "custom_properties": {
          "type": "object",
          "description": "Custom properties used in the definition.",
          "additionalProperties": {
            "type": "string",
            "enum": [
              "string",
              "number",
              "boolean",
              "date_time"
            ],
            "x-ms-enum": {
              "name": "device_property_type",
              "modelAsString": false
            }
          }
        },
        "estimated_total_count": {
          "description": "Estimated total audience size.",
          "type": "integer",
          "format": "int64"
        },
        "timestamp": {
          "description": "Date the audience was last refreshed.",
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "AudienceTestResult": {
      "description": "Audience test result.",
      "properties": {
        "definition": {
          "description": "Audience definition in OData format.",
          "type": "string"
        },
        "custom_properties": {
          "type": "object",
          "description": "Custom properties used in the definition.",
          "additionalProperties": {
            "type": "string",
            "enum": [
              "string",
              "number",
              "boolean",
              "date_time"
            ],
            "x-ms-enum": {
              "name": "device_property_type",
              "modelAsString": false
            }
          }
        },
        "estimated_count": {
          "description": "Estimated audience size.",
          "type": "integer",
          "format": "int64"
        },
        "estimated_total_count": {
          "description": "Estimated total audience size.",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "TokenQueryResult": {
      "description": "Token query result.",
      "properties": {
        "tokens": {
          "description": "List of tokens.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "AudienceDefinition": {
      "description": "Audience definition.",
      "type": "object",
      "properties": {
        "description": {
          "description": "Audience description.",
          "type": "string",
          "maxLength": 128
        },
        "definition": {
          "description": "Audience definition in OData format.",
          "type": "string",
          "maxLength": 2000
        },
        "enabled": {
          "type": "boolean",
          "default": true
        },
        "custom_properties": {
          "type": "object",
          "description": "Custom properties used in the definition.",
          "additionalProperties": {
            "type": "string",
            "enum": [
              "string",
              "number",
              "boolean",
              "date_time"
            ],
            "x-ms-enum": {
              "name": "device_property_type",
              "modelAsString": false
            }
          }
        }
      },
      "required": [
        "definition"
      ]
    },
    "AudienceQueryDefinition": {
      "description": "Audience Query definition.",
      "type": "object",
      "properties": {
        "queryType": {
          "description": "Audience Query Type",
          "type": "string",
          "enum": [
            "broadcast",
            "user_ids",
            "account_ids",
            "install_ids"
          ],
          "x-ms-enum": {
            "name": "audience_query_type",
            "modelAsString": false
          }
        },
        "identifiers": {
          "description": "List of identifiers.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "queryType"
      ]
    },
    "AudienceBlobResult": {
      "description": "Audience definition.",
      "type": "object",
      "properties": {
        "url": {
          "description": "Location of the audience blob.",
          "type": "string"
        }
      }
    },
    "AudienceDevicePropertiesListResult": {
      "description": "List of device properties.",
      "properties": {
        "values": {
          "description": "List of device properties.",
          "type": "object",
          "additionalProperties": {
            "description": "Type of the property.",
            "type": "string",
            "enum": [
              "string",
              "number",
              "boolean",
              "date_time"
            ],
            "x-ms-enum": {
              "name": "device_property_type",
              "modelAsString": false
            }
          }
        }
      },
      "required": [
        "values"
      ]
    },
    "AudienceDevicePropertyValuesListResult": {
      "description": "List of device property values.",
      "properties": {
        "values": {
          "description": "List of device property values.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "values"
      ]
    },
    "CrashCounts": {
      "type": "object",
      "properties": {
        "count": {
          "description": "total crash count",
          "type": "integer",
          "format": "int64"
        },
        "crashes": {
          "description": "the total crash count for day",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimeCounts"
          }
        }
      }
    },
    "ActiveDeviceCounts": {
      "properties": {
        "daily": {
          "description": "the active device count for each interval",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimeCounts"
          }
        },
        "weekly": {
          "description": "the active device count for each interval with a week's retention",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimeCounts"
          }
        },
        "monthly": {
          "description": "the active device count for each interval with a month's retention",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimeCounts"
          }
        }
      }
    },
    "Places": {
      "description": "Places and count during the time range in descending order",
      "properties": {
        "total": {
          "type": "integer",
          "format": "int64"
        },
        "places": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Place"
          }
        }
      }
    },
    "Place": {
      "description": "The place code and the count",
      "type": "object",
      "properties": {
        "code": {
          "description": "the place code",
          "type": "string"
        },
        "count": {
          "description": "the count of the this place",
          "type": "integer",
          "format": "int64"
        },
        "previous_count": {
          "description": "the count of previous time range of the place",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "Error": {
      "description": "Error",
      "type": "object",
      "properties": {
        "error": {
          "type": "object",
          "properties": {
            "code": {
              "description": "The status code return by the API. It can be 400 or 403 or 500.",
              "type": "integer",
              "enum": [
                400,
                403,
                500
              ]
            },
            "message": {
              "description": "The reason for the request failed",
              "type": "string"
            }
          }
        }
      }
    },
    "SessionDurationsDistribution": {
      "type": "object",
      "properties": {
        "distribution": {
          "description": "the count of sessions in these buckets",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "bucket": {
                "description": "the bucket name",
                "type": "string"
              },
              "count": {
                "description": "the count of sessions in current bucket",
                "type": "integer",
                "format": "int64"
              }
            }
          }
        },
        "previous_average_duration": {
          "description": "the previous average session duration for previous time range",
          "type": "string"
        },
        "average_duration": {
          "description": "the average session duration for current time range",
          "type": "string"
        }
      }
    },
    "Versions": {
      "properties": {
        "versions": {
          "description": "list of version count",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Version"
          }
        },
        "total": {
          "description": "the total count of versions",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "Version": {
      "type": "object",
      "properties": {
        "version": {
          "description": "version",
          "type": "string"
        },
        "count": {
          "description": "version count",
          "type": "integer",
          "format": "int64"
        },
        "previous_count": {
          "description": "the count of previous time range of the version",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "SessionCounts": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/DateTimeCounts"
      }
    },
    "SessionsPerDevice": {
      "type": "object",
      "properties": {
        "average_sessions_per_user": {
          "description": "average seesion per user",
          "type": "number",
          "format": "double"
        },
        "previous_average_sessions_per_user": {
          "description": "previous average session per user",
          "type": "number",
          "format": "double"
        },
        "total_count": {
          "description": "total session per device count",
          "type": "integer",
          "format": "int64"
        },
        "previous_total_count": {
          "description": "previous total count",
          "type": "integer",
          "format": "int64"
        },
        "sessions_per_user": {
          "type": "array",
          "description": "the session count for each interval per device",
          "items": {
            "type": "object",
            "properties": {
              "datetime": {
                "description": "the ISO 8601 datetime",
                "type": "string"
              },
              "count": {
                "description": "count",
                "type": "number",
                "format": "double"
              }
            }
          }
        }
      }
    },
    "AnalyticsModels": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "format": "int64"
        },
        "models": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Model"
          }
        }
      }
    },
    "Model": {
      "properties": {
        "model_name": {
          "type": "string",
          "description": "model's name"
        },
        "count": {
          "description": "count current of model",
          "type": "integer",
          "format": "int64"
        },
        "previous_count": {
          "description": "count of previous model",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "Languages": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "format": "int64"
        },
        "languages": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Language"
          }
        }
      }
    },
    "Language": {
      "properties": {
        "language_name": {
          "type": "string",
          "description": "language's name"
        },
        "count": {
          "description": "count current of language",
          "type": "integer",
          "format": "int64"
        },
        "previous_count": {
          "description": "count of previous lanugage",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "OSes": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "format": "int64"
        },
        "oses": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/OS"
          }
        }
      }
    },
    "OS": {
      "properties": {
        "os_name": {
          "type": "string",
          "description": "OS name"
        },
        "count": {
          "description": "count current of OS",
          "type": "integer",
          "format": "int64"
        },
        "previous_count": {
          "description": "count of previous OS",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "DateTimeCounts": {
      "properties": {
        "datetime": {
          "description": "the ISO 8601 datetime",
          "type": "string"
        },
        "count": {
          "description": "count of the object",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "DateTimeDecimalCounts": {
      "properties": {
        "datetime": {
          "description": "the ISO 8601 datetime",
          "type": "string"
        },
        "count": {
          "description": "decimal count of the object",
          "type": "number",
          "format": "double"
        }
      }
    },
    "AvailableVersions": {
      "type": "object",
      "properties": {
        "versions": {
          "description": "List of available versions.",
          "type": "array",
          "items": {
            "description": "Version name.",
            "type": "string",
            "format": "string"
          }
        },
        "total_count": {
          "description": "The full number of versions across all pages.",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "CrashFreeDevicePercentages": {
      "type": "object",
      "properties": {
        "average_percentage": {
          "description": "Average percentage",
          "type": "number",
          "format": "double"
        },
        "daily_percentages": {
          "description": "The crash-free percentage per day.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimePercentages"
          }
        }
      }
    },
    "Module": {
      "type": "object",
      "additionalProperties": {
        "type": "boolean"
      }
    },
    "Modules": {
      "type": "object",
      "properties": {
        "modules": {
          "additionalProperties": {
            "$ref": "#/definitions/Module"
          }
        }
      }
    },
    "DateTimePercentages": {
      "properties": {
        "datetime": {
          "description": "the ISO 8601 datetime",
          "type": "string"
        },
        "percentage": {
          "description": "percentage of the object",
          "type": "number",
          "format": "double"
        }
      }
    },
    "CrashesOverall": {
      "description": "list of crash groups with overall crashes count and affected users",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "crash_group_id": {
            "type": "string",
            "format": "string"
          },
          "app_version": {
            "type": "string",
            "format": "string"
          },
          "overall": {
            "$ref": "#/definitions/CrashOverall"
          }
        }
      }
    },
    "CrashOverall": {
      "type": "object",
      "properties": {
        "crash_count": {
          "type": "integer",
          "format": "int64"
        },
        "device_count": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "CrashGroupModels": {
      "type": "object",
      "properties": {
        "crash_count": {
          "type": "integer",
          "format": "int64"
        },
        "models": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrashGroupModel"
          }
        }
      }
    },
    "CrashGroupModel": {
      "type": "object",
      "properties": {
        "model_name": {
          "type": "string",
          "description": "model's name"
        },
        "crash_count": {
          "description": "count of model",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "CrashGroupOperatingSystems": {
      "type": "object",
      "properties": {
        "crash_count": {
          "type": "integer",
          "format": "int64"
        },
        "operating_systems": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrashGroupOperatingSystem"
          }
        }
      }
    },
    "CrashGroupOperatingSystem": {
      "type": "object",
      "properties": {
        "operating_system_name": {
          "type": "string",
          "description": "OS name"
        },
        "crash_count": {
          "type": "integer",
          "format": "int64",
          "description": "count of OS"
        }
      }
    },
    "CrashGroupPlaces": {
      "type": "object",
      "properties": {
        "crash_count": {
          "format": "int64",
          "type": "integer"
        },
        "places": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrashGroupPlace"
          }
        }
      }
    },
    "CrashGroupPlace": {
      "type": "object",
      "properties": {
        "place_name": {
          "type": "string",
          "description": "Place name"
        },
        "crash_count": {
          "type": "integer",
          "format": "int64",
          "description": "count of places"
        }
      }
    },
    "CrashGroupLanguages": {
      "type": "object",
      "properties": {
        "crash_count": {
          "format": "int64",
          "type": "integer"
        },
        "languages": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrashGroupLanguage"
          }
        }
      }
    },
    "CrashGroupLanguage": {
      "type": "object",
      "properties": {
        "language_name": {
          "type": "string",
          "description": "language name"
        },
        "crash_count": {
          "type": "integer",
          "format": "int64",
          "description": "count of languages"
        }
      }
    },
    "CrashGroupCarriers": {
      "type": "object",
      "properties": {
        "crash_count": {
          "type": "integer",
          "format": "int64"
        },
        "carriers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CrashGroupCarrier"
          }
        }
      }
    },
    "CrashGroupCarrier": {
      "type": "object",
      "properties": {
        "carrier_name": {
          "type": "string",
          "description": "carrier name"
        },
        "crash_count": {
          "type": "integer",
          "format": "int64",
          "description": "crash count of carrier"
        }
      }
    },
    "CrashGroupContainer": {
      "type": "object",
      "required": [
        "crash_groups"
      ],
      "properties": {
        "crash_groups": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/CrashGroupAndVersion"
          }
        }
      }
    },
    "CrashGroupAndVersion": {
      "type": "object",
      "properties": {
        "crash_group_id": {
          "type": "string",
          "format": "string"
        },
        "app_version": {
          "type": "string",
          "format": "string"
        }
      }
    },
    "Events": {
      "properties": {
        "events": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Event"
          }
        },
        "total": {
          "description": "the total count of events",
          "type": "integer",
          "format": "int64"
        },
        "total_devices": {
          "description": "the active device over this period",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "Event": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "string"
        },
        "name": {
          "type": "string",
          "format": "string"
        },
        "device_count": {
          "type": "integer",
          "format": "int64"
        },
        "previous_device_count": {
          "description": "the device count of previous time range of the event",
          "type": "integer",
          "format": "int64"
        },
        "count": {
          "type": "integer",
          "format": "int64"
        },
        "previous_count": {
          "description": "the event count of previous time range of the event",
          "type": "integer",
          "format": "int64"
        },
        "count_per_device": {
          "type": "number",
          "format": "double"
        },
        "count_per_session": {
          "type": "number",
          "format": "double"
        }
      }
    },
    "EventCount": {
      "type": "object",
      "properties": {
        "total_count": {
          "type": "integer",
          "format": "int64"
        },
        "previous_total_count": {
          "type": "integer",
          "format": "int64"
        },
        "count": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimeCounts"
          }
        }
      }
    },
    "EventDeviceCount": {
      "type": "object",
      "properties": {
        "total_devices": {
          "type": "integer",
          "format": "int64"
        },
        "total_devices_with_event": {
          "type": "integer",
          "format": "int64"
        },
        "previous_total_devices_with_event": {
          "type": "integer",
          "format": "int64"
        },
        "devices_count": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimeCounts"
          }
        }
      }
    },
    "EventCountPerDevice": {
      "type": "object",
      "properties": {
        "avg_count_per_device": {
          "type": "number",
          "format": "double"
        },
        "previous_avg_count_per_device": {
          "type": "number",
          "format": "double"
        },
        "count_per_device": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimeDecimalCounts"
          }
        }
      }
    },
    "EventCountPerSession": {
      "type": "object",
      "properties": {
        "avg_count_per_session": {
          "type": "number",
          "format": "double"
        },
        "previous_avg_count_per_session": {
          "type": "number",
          "format": "double"
        },
        "count_per_session": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimeDecimalCounts"
          }
        }
      }
    },
    "EventProperties": {
      "description": "Event properties during the time range",
      "type": "object",
      "properties": {
        "event_properties": {
          "type": "array",
          "items": {
            "description": "The event property",
            "type": "string",
            "format": "string"
          }
        }
      }
    },
    "EventPropertyValues": {
      "description": "Event property value counts during the time range in descending order",
      "type": "object",
      "properties": {
        "total": {
          "description": "The total property value counts",
          "type": "integer",
          "format": "int64"
        },
        "values": {
          "description": "The event property values",
          "type": "array",
          "items": {
            "$ref": "#/definitions/EventPropertyValue"
          }
        }
      }
    },
    "EventPropertyValue": {
      "description": "An event property value with counts",
      "type": "object",
      "properties": {
        "name": {
          "description": "The event property value name",
          "type": "string"
        },
        "count": {
          "description": "The count of the the event property value",
          "type": "integer",
          "format": "int64"
        },
        "previous_count": {
          "description": "The count of previous time range of the event property value",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "NotifyReleasesContainer": {
      "type": "object",
      "properties": {
        "releases": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/ReleaseWithDistributionGroupAndUserId"
          }
        }
      },
      "required": [
        "releases"
      ]
    },
    "DeleteReleasesContainer": {
      "type": "object",
      "properties": {
        "releases": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/Release"
          }
        }
      },
      "required": [
        "releases"
      ]
    },
    "GetReleasesContainer": {
      "type": "object",
      "properties": {
        "releases": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/ReleaseWithDistributionGroup"
          }
        }
      },
      "required": [
        "releases"
      ]
    },
    "FilterReleasesContainer": {
      "type": "object",
      "properties": {
        "releases": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Release"
          }
        }
      }
    },
    "FilterVersionsContainer": {
      "type": "object",
      "properties": {
        "versions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "version": {
                "description": "App version\n",
                "type": "string",
                "format": "string"
              },
              "build": {
                "description": "App build number\n",
                "type": "string",
                "format": "string"
              }
            },
            "required": [
              "version",
              "build"
            ]
          }
        }
      }
    },
    "Release": {
      "type": "object",
      "properties": {
        "release": {
          "description": "Release Id.\n",
          "type": "string",
          "format": "string"
        }
      },
      "required": [
        "release"
      ]
    },
    "ReleaseWithDistributionGroup": {
      "allOf": [
        {
          "$ref": "#/definitions/Release"
        }
      ],
      "properties": {
        "distribution_group": {
          "description": "Distribution group Id.\n",
          "type": "string",
          "format": "string"
        }
      }
    },
    "ReleaseWithDistributionGroupAndUserId": {
      "allOf": [
        {
          "$ref": "#/definitions/ReleaseWithDistributionGroup"
        }
      ],
      "properties": {
        "user_id": {
          "description": "Unique user Id.  Will generate a new user Id if not provided.\n",
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "ReleaseCounts": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "format": "int64"
        },
        "counts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ReleaseCount"
          }
        }
      },
      "required": [
        "counts"
      ]
    },
    "ReleaseDailySessions": {
      "type": "object",
      "properties": {
        "totalSessionCounts": {
          "type": "integer",
          "format": "int64"
        },
        "avgSessionsPerDay": {
          "type": "number",
          "format": "double"
        },
        "sessions": {
          "description": "Sessions per day",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DailySession"
          }
        }
      }
    },
    "DailySession": {
      "type": "object",
      "properties": {
        "datetime": {
          "type": "string",
          "description": "the ISO 8601 datetime"
        },
        "count": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "DateTimeDownloadReleaseCounts": {
      "type": "object",
      "properties": {
        "total": {
          "type": "integer",
          "format": "int64"
        },
        "unique": {
          "type": "integer",
          "format": "int64"
        },
        "counts": {
          "description": "Release Counts per day",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DateTimeDownloadReleaseCount"
          }
        }
      }
    },
    "DateTimeDownloadReleaseCount": {
      "type": "object",
      "properties": {
        "datetime": {
          "description": "the ISO 8601 datetime",
          "type": "string"
        },
        "total": {
          "type": "integer",
          "format": "int64"
        },
        "unique": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "ReleaseCount": {
      "type": "object",
      "properties": {
        "release_id": {
          "type": "string",
          "format": "string"
        },
        "distribution_group": {
          "description": "Distribution group queried.\n",
          "type": "string",
          "format": "string"
        },
        "unique_count": {
          "description": "Count of unique downloads against user id.\n",
          "type": "integer",
          "format": "int64"
        },
        "total_count": {
          "description": "Total count of downloads.\n",
          "type": "integer",
          "format": "int64"
        }
      },
      "required": [
        "release_id",
        "unique_count",
        "total_count"
      ]
    },
    "LogFlowLogContainer": {
      "type": "object",
      "properties": {
        "exceeded_max_limit": {
          "description": "indicates if the number of available logs are more than the max allowed return limit(100).",
          "type": "boolean"
        },
        "last_received_log_timestamp": {
          "description": "the timestamp of the last log received. This value can be used as the start time parameter in the consecutive API call.",
          "type": "string",
          "format": "date-time"
        },
        "logs": {
          "minItems": 0,
          "description": "the list of logs",
          "type": "array",
          "items": {
            "$ref": "#/definitions/LogFlowLog"
          }
        }
      },
      "required": [
        "logs"
      ]
    },
    "LogFlowGenericLogContainer": {
      "type": "object",
      "properties": {
        "exceeded_max_limit": {
          "description": "indicates if the number of available logs are more than the max allowed return limit(100).",
          "type": "boolean"
        },
        "last_received_log_timestamp": {
          "description": "the timestamp of the last log received. This value can be used as the start time parameter in the consecutive API call.",
          "type": "string",
          "format": "date-time"
        },
        "logs": {
          "minItems": 0,
          "description": "the list of logs",
          "type": "array",
          "items": {
            "$ref": "#/definitions/LogFlowGenericLog"
          }
        }
      },
      "required": [
        "logs"
      ]
    },
    "LogFlowGenericLog": {
      "type": "object",
      "description": "Generic log.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "event",
            "page",
            "start_session",
            "error",
            "push_installation",
            "start_service",
            "custom_properties"
          ],
          "description": "Log type.\n"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Log creation timestamp.\n"
        },
        "install_id": {
          "type": "string",
          "format": "uuid",
          "description": "Install ID.\n"
        },
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "event_id": {
          "type": "string",
          "description": "Event ID.\n"
        },
        "event_name": {
          "type": "string",
          "description": "Event name.\n"
        },
        "message_id": {
          "type": "string",
          "description": "Message ID.\n"
        },
        "properties": {
          "type": "object",
          "description": "event specific properties.\n",
          "additionalProperties": {
            "type": "string"
          }
        },
        "device": {
          "$ref": "#/definitions/LogFlowDevice"
        }
      },
      "required": [
        "type",
        "timestamp",
        "install_id",
        "device"
      ]
    },
    "LogFlowLog": {
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "event",
            "page",
            "start_session",
            "error",
            "push_installation",
            "start_service",
            "custom_properties"
          ],
          "description": "Log type.\n"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Log creation timestamp.\n"
        },
        "install_id": {
          "type": "string",
          "format": "uuid",
          "description": "Install ID.\n"
        },
        "device": {
          "$ref": "#/definitions/LogFlowDevice"
        }
      },
      "required": [
        "type",
        "timestamp",
        "install_id",
        "device"
      ]
    },
    "LogFlowLogWithProperties": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowLog"
        }
      ],
      "properties": {
        "properties": {
          "type": "object",
          "description": "Additional key/value pair parameters.\n",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "LogFlowDevice": {
      "type": "object",
      "description": "Device characteristics.",
      "properties": {
        "sdk_name": {
          "type": "string",
          "description": "Name of the SDK. Consists of the name of the SDK and the platform, e.g. \"appcenter.ios\", \"hockeysdk.android\".\n"
        },
        "sdk_version": {
          "type": "string",
          "description": "Version of the SDK in semver format, e.g. \"1.2.0\" or \"0.12.3-alpha.1\".\n"
        },
        "wrapper_sdk_version": {
          "type": "string",
          "description": "Version of the wrapper SDK in semver format. When the SDK is embedding another base SDK (for example Xamarin.Android wraps Android), the Xamarin specific version is populated into this field while sdkVersion refers to the original Android SDK.\n"
        },
        "wrapper_sdk_name": {
          "type": "string",
          "description": "Name of the wrapper SDK. Consists of the name of the SDK and the wrapper platform, e.g. \"appcenter.xamarin\", \"hockeysdk.cordova\".\n"
        },
        "model": {
          "type": "string",
          "description": "Device model (example: iPad2,3).\n"
        },
        "oem_name": {
          "type": "string",
          "description": "Device manufacturer (example: HTC).\n"
        },
        "os_name": {
          "type": "string",
          "description": "OS name (example: iOS). The following OS names are standardized (non-exclusive): Android, iOS, macOS, tvOS, Windows.\n"
        },
        "os_version": {
          "type": "string",
          "description": "OS version (example: 9.3.0).\n"
        },
        "os_build": {
          "type": "string",
          "description": "OS build code (example: LMY47X).\n"
        },
        "os_api_level": {
          "type": "integer",
          "description": "API level when applicable like in Android (example: 15).\n"
        },
        "locale": {
          "type": "string",
          "description": "Language code (example: en_US).\n"
        },
        "time_zone_offset": {
          "type": "integer",
          "minimum": -840,
          "maximum": 840,
          "description": "The offset in minutes from UTC for the device time zone, including daylight savings time.\n"
        },
        "screen_size": {
          "type": "string",
          "description": "Screen size of the device in pixels (example: 640x480).\n"
        },
        "app_version": {
          "type": "string",
          "description": "Application version name, e.g. 1.1.0\n"
        },
        "carrier_name": {
          "type": "string",
          "description": "Carrier name (for mobile devices).\n"
        },
        "carrier_code": {
          "type": "string",
          "description": "Carrier country code (for mobile devices).\n"
        },
        "carrier_country": {
          "type": "string",
          "description": "Carrier country.\n"
        },
        "app_build": {
          "type": "string",
          "description": "The app's build number, e.g. 42.\n"
        },
        "app_namespace": {
          "type": "string",
          "description": "The bundle identifier, package identifier, or namespace, depending on what the individual plattforms use,  .e.g com.microsoft.example.\n"
        },
        "live_update_release_label": {
          "type": "string",
          "description": "Label that is used to identify application code 'version' released via Live Update beacon running on device\n"
        },
        "live_update_deployment_key": {
          "type": "string",
          "description": "Identifier of environment that current application release belongs to, deployment key then maps to environment like Production, Staging.\n"
        },
        "live_update_package_hash": {
          "type": "string",
          "description": "Hash of all files (ReactNative or Cordova) deployed to device via LiveUpdate beacon. Helps identify the Release version on device or need to download updates in future.\n"
        },
        "wrapper_runtime_version": {
          "type": "string",
          "description": "Version of the wrapper technology framework (Xamarin runtime version or ReactNative or Cordova etc...). See wrapper_sdk_name to see if this version refers to Xamarin or ReactNative or other.\n"
        }
      },
      "required": [
        "sdk_name",
        "sdk_version",
        "os_name",
        "os_version",
        "locale",
        "time_zone_offset",
        "app_version",
        "app_build"
      ]
    },
    "LogFlowStartSessionLog": {
      "type": "object",
      "description": "Required explicit begin session log (a marker event for analytics service).",
      "x-ms-discriminator-value": "start_session",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowLog"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        }
      },
      "required": [
        "session_id"
      ]
    },
    "LogFlowStartServiceLog": {
      "type": "object",
      "description": "Describe a AppCenter.Start API call from the SDK.",
      "x-ms-discriminator-value": "start_service",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowLog"
        }
      ],
      "properties": {
        "services": {
          "type": "array",
          "description": "The list of services of the AppCenter Start API call.",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "LogFlowCustomPropertyLog": {
      "type": "object",
      "description": "Set or remove custom properties.",
      "x-ms-discriminator-value": "custom_properties",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowLog"
        }
      ],
      "properties": {
        "properties": {
          "type": "array",
          "description": "Custom property changes.",
          "minItems": 1,
          "maxItems": 60,
          "items": {
            "$ref": "#/definitions/LogFlowCustomProperty"
          }
        }
      }
    },
    "LogFlowCustomProperty": {
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "maxLength": 128,
          "pattern": "^[a-zA-Z][a-zA-Z0-9\\-_]*$"
        }
      },
      "required": [
        "type",
        "name"
      ]
    },
    "LogFlowStringProperty": {
      "type": "object",
      "description": "String property.",
      "x-ms-discriminator-value": "string",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowCustomProperty"
        }
      ],
      "properties": {
        "value": {
          "type": "string",
          "maxLength": 128,
          "description": "String property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "LogFlowNumberProperty": {
      "type": "object",
      "description": "Number property.",
      "x-ms-discriminator-value": "number",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowCustomProperty"
        }
      ],
      "properties": {
        "value": {
          "type": "number",
          "description": "Number property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "LogFlowBooleanProperty": {
      "type": "object",
      "description": "Boolean property.",
      "x-ms-discriminator-value": "boolean",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowCustomProperty"
        }
      ],
      "properties": {
        "value": {
          "type": "boolean",
          "description": "Boolean property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "LogFlowDateTimeProperty": {
      "type": "object",
      "description": "Date and time property.",
      "x-ms-discriminator-value": "date_time",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowCustomProperty"
        }
      ],
      "properties": {
        "value": {
          "type": "string",
          "format": "date-time",
          "description": "Date time property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "LogFlowClearProperty": {
      "type": "object",
      "description": "Clear an existing property.",
      "x-ms-discriminator-value": "clear",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowCustomProperty"
        }
      ]
    },
    "LogFlowPageLog": {
      "type": "object",
      "description": "Page view log (as in screens or activities).",
      "x-ms-discriminator-value": "page",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowLogWithProperties"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the page.\n"
        }
      },
      "required": [
        "name",
        "session_id"
      ]
    },
    "LogFlowEventLog": {
      "type": "object",
      "description": "Event log.",
      "x-ms-discriminator-value": "event",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowLogWithProperties"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for this event.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the event.\n"
        }
      },
      "required": [
        "id",
        "name",
        "session_id"
      ]
    },
    "LogFlowPushInstallationLog": {
      "type": "object",
      "description": "Push installation Information.",
      "x-ms-discriminator-value": "push_installation",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowLog"
        }
      ],
      "properties": {
        "push_token": {
          "type": "string",
          "description": "The PNS handle for this installation.\n"
        }
      },
      "required": [
        "push_token"
      ]
    },
    "LogFlowErrorLog": {
      "type": "object",
      "description": "Error log.",
      "x-ms-discriminator-value": "error",
      "allOf": [
        {
          "$ref": "#/definitions/LogFlowLog"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Error identifier."
        },
        "app_launch_toffset": {
          "type": "integer",
          "format": "int64",
          "description": "Corresponds to the number of milliseconds elapsed between the time the error occurred and the app was launched.\n"
        }
      },
      "required": [
        "session_id",
        "id"
      ]
    },
    "ErrorGroups": {
      "type": "object",
      "properties": {
        "nextLink": {
          "type": "string"
        },
        "errorGroups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ErrorGroupListItem"
          }
        }
      }
    },
    "ErrorGroupsSearchResult": {
      "type": "object",
      "properties": {
        "hasMoreResults": {
          "type": "boolean"
        },
        "errorGroups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ErrorGroupListItem"
          }
        }
      }
    },
    "ErrorCounts": {
      "type": "object",
      "properties": {
        "count": {
          "description": "total error count",
          "type": "integer",
          "format": "int64"
        },
        "errors": {
          "description": "the total error count for day",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ErrorDateTimeCounts"
          }
        }
      }
    },
    "ErrorGroupListItem": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/ErrorGroup"
        }
      ]
    },
    "ErrorGroup": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/ErrorGroupState"
        }
      ],
      "properties": {
        "errorGroupId": {
          "type": "string"
        },
        "appVersion": {
          "type": "string"
        },
        "appBuild": {
          "type": "string"
        },
        "count": {
          "type": "integer",
          "format": "int64"
        },
        "deviceCount": {
          "type": "integer",
          "format": "int64"
        },
        "firstOccurrence": {
          "type": "string",
          "format": "date-time"
        },
        "lastOccurrence": {
          "type": "string",
          "format": "date-time"
        },
        "exceptionType": {
          "type": "string"
        },
        "exceptionMessage": {
          "type": "string"
        },
        "exceptionClassName": {
          "type": "string"
        },
        "exceptionClassMethod": {
          "type": "boolean"
        },
        "exceptionMethod": {
          "type": "string"
        },
        "exceptionAppCode": {
          "type": "boolean"
        },
        "exceptionFile": {
          "type": "string"
        },
        "exceptionLine": {
          "type": "string"
        },
        "codeRaw": {
          "type": "string"
        },
        "reasonFrames": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HandledErrorReasonFrame"
          }
        }
      },
      "required": [
        "errorGroupId",
        "appVersion",
        "state",
        "count",
        "deviceCount",
        "firstOccurrence",
        "lastOccurrence"
      ]
    },
    "ErrorDateTimePercentages": {
      "properties": {
        "datetime": {
          "description": "the ISO 8601 datetime",
          "type": "string"
        },
        "percentage": {
          "description": "percentage of the object",
          "type": "number",
          "format": "double"
        }
      }
    },
    "ErrorDateTimeCounts": {
      "properties": {
        "datetime": {
          "description": "the ISO 8601 datetime",
          "type": "string"
        },
        "count": {
          "description": "count of the object",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "ErrorGroupState": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "open",
            "closed",
            "ignored"
          ]
        },
        "annotation": {
          "type": "string"
        }
      },
      "required": [
        "state"
      ]
    },
    "ErrorDownload": {
      "type": "object",
      "format": "file"
    },
    "ErrorDownloadLink": {
      "type": "object",
      "properties": {
        "link": {
          "type": "string"
        }
      },
      "required": [
        "link"
      ]
    },
    "DiagnosticsException": {
      "description": "a exception",
      "type": "object",
      "properties": {
        "reason": {
          "type": "string",
          "description": "Reason of the exception"
        },
        "type": {
          "type": "string",
          "description": "Type of the exception (NSSomethingException, NullPointerException)"
        },
        "frames": {
          "description": "frames of the excetpion",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DiagnosticsStackFrame"
          }
        },
        "relevant": {
          "description": "relevant exception (crashed)",
          "type": "boolean"
        },
        "inner_exceptions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DiagnosticsException"
          }
        },
        "platform": {
          "description": "SDK/Platform this thread is beeing generated from",
          "type": "string",
          "enum": [
            "ios",
            "android",
            "xamarin",
            "react-native",
            "ndk",
            "unity",
            "other"
          ]
        }
      },
      "required": [
        "frames"
      ]
    },
    "DiagnosticsStackTrace": {
      "description": "a stacktrace in a processed and prettyfied way",
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "threads": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DiagnosticsThread"
          }
        },
        "exception": {
          "$ref": "#/definitions/DiagnosticsException"
        }
      }
    },
    "DiagnosticsThread": {
      "description": "a thread representation",
      "type": "object",
      "properties": {
        "title": {
          "description": "name of the thread",
          "type": "string"
        },
        "frames": {
          "description": "frames of that thread",
          "type": "array",
          "items": {
            "$ref": "#/definitions/DiagnosticsStackFrame"
          }
        },
        "exception": {
          "description": "potential additional exception happened in that thread (Last Exception Backtrace)",
          "$ref": "#/definitions/DiagnosticsException"
        },
        "relevant": {
          "description": "Shows if a thread is relevant or not. Is false if all frames are non relevant, otherwise true",
          "type": "boolean"
        },
        "platform": {
          "description": "SDK/Platform this thread is beeing generated from",
          "type": "string",
          "enum": [
            "ios",
            "android",
            "xamarin",
            "react-native",
            "ndk",
            "unity",
            "other"
          ]
        },
        "crashed": {
          "description": "True if this thread crashed",
          "type": "boolean"
        }
      },
      "required": [
        "title",
        "frames"
      ]
    },
    "DiagnosticsStackFrame": {
      "description": "a single frame of a stack trace",
      "type": "object",
      "properties": {
        "address": {
          "description": "address of the frame",
          "type": "string"
        },
        "class_name": {
          "description": "name of the class",
          "type": "string"
        },
        "method": {
          "description": "name of the method",
          "type": "string"
        },
        "class_method": {
          "description": "is a class method",
          "type": "boolean"
        },
        "file": {
          "description": "name of the file",
          "type": "string"
        },
        "line": {
          "description": "line number",
          "type": "integer"
        },
        "app_code": {
          "description": "this line isn't from any framework",
          "type": "boolean"
        },
        "framework_name": {
          "description": "Name of the framework",
          "type": "string"
        },
        "code_raw": {
          "description": "Raw frame string",
          "type": "string"
        },
        "code_formatted": {
          "description": "Formatted frame string",
          "type": "string"
        },
        "language": {
          "description": "programming language of the frame",
          "type": "string",
          "enum": [
            "JavaScript",
            "CSharp",
            "Objective-C",
            "Objective-Cpp",
            "Cpp",
            "C",
            "Swift",
            "Java",
            "Unknown"
          ]
        },
        "relevant": {
          "description": "frame should be shown always",
          "type": "boolean"
        },
        "method_params": {
          "description": "parameters of the frames method",
          "type": "string"
        }
      },
      "required": [
        "code_raw",
        "code_formatted",
        "app_code"
      ]
    },
    "HandledErrorReasonFrame": {
      "properties": {
        "className": {
          "description": "name of the class",
          "type": "string"
        },
        "method": {
          "description": "name of the method",
          "type": "string"
        },
        "classMethod": {
          "description": "is a class method",
          "type": "boolean"
        },
        "file": {
          "description": "name of the file",
          "type": "string"
        },
        "line": {
          "description": "line number",
          "type": "integer"
        },
        "appCode": {
          "description": "this line isn't from any framework",
          "type": "boolean"
        },
        "frameworkName": {
          "description": "Name of the framework",
          "type": "string"
        },
        "codeFormatted": {
          "description": "Formatted frame string",
          "type": "string"
        },
        "codeRaw": {
          "description": "Unformatted Frame string",
          "type": "string"
        },
        "language": {
          "description": "programming language of the frame",
          "type": "string",
          "enum": [
            "JavaScript",
            "CSharp",
            "Objective-C",
            "Objective-Cpp",
            "Cpp",
            "C",
            "Swift",
            "Java",
            "Unknown"
          ]
        },
        "methodParams": {
          "description": "parameters of the frames method",
          "type": "string"
        },
        "exceptionType": {
          "type": "string",
          "description": "Exception type."
        },
        "osExceptionType": {
          "type": "string",
          "description": "OS exception type. (aka. SIGNAL)"
        }
      }
    },
    "ErrorFreeDevicePercentages": {
      "type": "object",
      "properties": {
        "averagePercentage": {
          "description": "Average percentage",
          "type": "number",
          "format": "double"
        },
        "dailyPercentages": {
          "description": "The error-free percentage per day.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/ErrorDateTimePercentages"
          }
        }
      }
    },
    "HandledErrors": {
      "type": "object",
      "properties": {
        "nextLink": {
          "type": "string"
        },
        "errors": {
          "description": "Errors list.",
          "type": "array",
          "items": {
            "$ref": "#/definitions/HandledError"
          }
        }
      }
    },
    "ErrorsSearchResult": {
      "type": "object",
      "properties": {
        "hasMoreResults": {
          "type": "boolean"
        },
        "errors": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HandledError"
          }
        }
      }
    },
    "HandledError": {
      "type": "object",
      "properties": {
        "errorId": {
          "type": "string"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time"
        },
        "deviceName": {
          "type": "string"
        },
        "osVersion": {
          "type": "string"
        },
        "osType": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "language": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        }
      }
    },
    "HandledErrorDetails": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/HandledError"
        }
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "reasonFrames": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HandledErrorReasonFrame"
          }
        },
        "appLaunchTimestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the app was launched, example: '2017-03-13T18:05:42Z'.\n"
        },
        "carrierName": {
          "type": "string",
          "description": "Carrier name (for mobile devices).\n"
        },
        "jailbreak": {
          "type": "boolean",
          "description": "Flag indicating if device is jailbroken\n"
        },
        "properties": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "ErrorDeleteCounter": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string"
        },
        "errorGroupId": {
          "type": "string"
        },
        "errorId": {
          "type": "string"
        },
        "errorsDeleted": {
          "type": "integer"
        },
        "attachmentsDeleted": {
          "type": "integer"
        },
        "blobsSucceeded": {
          "type": "integer"
        },
        "blobsFailed": {
          "type": "integer"
        }
      }
    },
    "ErrorLocation": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        }
      }
    },
    "ErrorAttachments": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/ErrorAttachment"
      }
    },
    "ErrorAttachment": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string"
        },
        "attachmentId": {
          "type": "string"
        },
        "crashId": {
          "type": "string"
        },
        "blobLocation": {
          "type": "string"
        },
        "contentType": {
          "type": "string"
        },
        "fileName": {
          "type": "string"
        },
        "createdTime": {
          "type": "string",
          "format": "date-time"
        },
        "size": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "ErrorAttachmentText": {
      "type": "object",
      "properties": {
        "content": {
          "type": "string"
        }
      }
    },
    "ErrorAttachmentLocation": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string"
        }
      }
    },
    "ErrorGroupModels": {
      "type": "object",
      "properties": {
        "errorCount": {
          "type": "integer",
          "format": "int64"
        },
        "models": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ErrorGroupModel"
          }
        }
      }
    },
    "ErrorGroupModel": {
      "type": "object",
      "properties": {
        "modelName": {
          "type": "string",
          "description": "model name"
        },
        "modelCode": {
          "type": "string",
          "description": "model code"
        },
        "errorCount": {
          "description": "count of errors in a model",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "ErrorGroupOperatingSystems": {
      "type": "object",
      "properties": {
        "errorCount": {
          "type": "integer",
          "format": "int64"
        },
        "operatingSystems": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ErrorGroupOperatingSystem"
          }
        }
      }
    },
    "ErrorGroupOperatingSystem": {
      "type": "object",
      "properties": {
        "operatingSystemName": {
          "type": "string",
          "description": "OS name"
        },
        "errorCount": {
          "type": "integer",
          "format": "int64",
          "description": "count of OS"
        }
      }
    },
    "GenericLogContainer_Diagnostics": {
      "type": "object",
      "properties": {
        "exceeded_max_limit": {
          "description": "indicates if the number of available logs are more than the max allowed return limit(100).",
          "type": "boolean"
        },
        "last_received_log_timestamp": {
          "description": "the timestamp of the last log received. This value can be used as the start time parameter in the consecutive API call.",
          "type": "string",
          "format": "date-time"
        },
        "logs": {
          "minItems": 0,
          "description": "the list of logs",
          "type": "array",
          "items": {
            "$ref": "#/definitions/GenericLog_Diagnostics"
          }
        }
      },
      "required": [
        "logs"
      ]
    },
    "GenericLog_Diagnostics": {
      "type": "object",
      "description": "Generic log.",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "event",
            "page",
            "start_session",
            "error",
            "push_installation",
            "start_service",
            "custom_properties"
          ],
          "description": "Log type.\n"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Log creation timestamp.\n"
        },
        "install_id": {
          "type": "string",
          "format": "uuid",
          "description": "Install ID.\n"
        },
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "event_id": {
          "type": "string",
          "description": "Event ID.\n"
        },
        "event_name": {
          "type": "string",
          "description": "Event name.\n"
        },
        "message_id": {
          "type": "string",
          "description": "Message ID.\n"
        },
        "properties": {
          "type": "object",
          "description": "event specific properties.\n",
          "additionalProperties": {
            "type": "string"
          }
        },
        "device": {
          "$ref": "#/definitions/Device_Diagnostics"
        }
      },
      "required": [
        "type",
        "timestamp",
        "install_id",
        "device"
      ]
    },
    "Log_Diagnostics": {
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "event",
            "page",
            "start_session",
            "error",
            "push_installation",
            "start_service",
            "custom_properties"
          ],
          "description": "Log type.\n"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "Log creation timestamp.\n"
        },
        "install_id": {
          "type": "string",
          "format": "uuid",
          "description": "Install ID.\n"
        },
        "device": {
          "$ref": "#/definitions/Device_Diagnostics"
        }
      },
      "required": [
        "type",
        "timestamp",
        "install_id",
        "device"
      ]
    },
    "LogWithProperties_Diagnostics": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/Log_Diagnostics"
        }
      ],
      "properties": {
        "properties": {
          "type": "object",
          "description": "Additional key/value pair parameters.\n",
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "Device_Diagnostics": {
      "type": "object",
      "description": "Device characteristics.",
      "properties": {
        "sdk_name": {
          "type": "string",
          "description": "Name of the SDK. Consists of the name of the SDK and the platform, e.g. \"appcenter.ios\", \"hockeysdk.android\".\n"
        },
        "sdk_version": {
          "type": "string",
          "description": "Version of the SDK in semver format, e.g. \"1.2.0\" or \"0.12.3-alpha.1\".\n"
        },
        "wrapper_sdk_version": {
          "type": "string",
          "description": "Version of the wrapper SDK in semver format. When the SDK is embedding another base SDK (for example Xamarin.Android wraps Android), the Xamarin specific version is populated into this field while sdkVersion refers to the original Android SDK.\n"
        },
        "wrapper_sdk_name": {
          "type": "string",
          "description": "Name of the wrapper SDK. Consists of the name of the SDK and the wrapper platform, e.g. \"appcenter.xamarin\", \"hockeysdk.cordova\".\n"
        },
        "model": {
          "type": "string",
          "description": "Device model (example: iPad2,3).\n"
        },
        "oem_name": {
          "type": "string",
          "description": "Device manufacturer (example: HTC).\n"
        },
        "os_name": {
          "type": "string",
          "description": "OS name (example: iOS). The following OS names are standardized (non-exclusive): Android, iOS, macOS, tvOS, Windows.\n"
        },
        "os_version": {
          "type": "string",
          "description": "OS version (example: 9.3.0).\n"
        },
        "os_build": {
          "type": "string",
          "description": "OS build code (example: LMY47X).\n"
        },
        "os_api_level": {
          "type": "integer",
          "description": "API level when applicable like in Android (example: 15).\n"
        },
        "locale": {
          "type": "string",
          "description": "Language code (example: en_US).\n"
        },
        "time_zone_offset": {
          "type": "integer",
          "minimum": -840,
          "maximum": 840,
          "description": "The offset in minutes from UTC for the device time zone, including daylight savings time.\n"
        },
        "screen_size": {
          "type": "string",
          "description": "Screen size of the device in pixels (example: 640x480).\n"
        },
        "app_version": {
          "type": "string",
          "description": "Application version name, e.g. 1.1.0\n"
        },
        "carrier_name": {
          "type": "string",
          "description": "Carrier name (for mobile devices).\n"
        },
        "carrier_code": {
          "type": "string",
          "description": "Carrier country code (for mobile devices).\n"
        },
        "carrier_country": {
          "type": "string",
          "description": "Carrier country.\n"
        },
        "app_build": {
          "type": "string",
          "description": "The app's build number, e.g. 42.\n"
        },
        "app_namespace": {
          "type": "string",
          "description": "The bundle identifier, package identifier, or namespace, depending on what the individual plattforms use,  .e.g com.microsoft.example.\n"
        },
        "live_update_release_label": {
          "type": "string",
          "description": "Label that is used to identify application code 'version' released via Live Update beacon running on device\n"
        },
        "live_update_deployment_key": {
          "type": "string",
          "description": "Identifier of environment that current application release belongs to, deployment key then maps to environment like Production, Staging.\n"
        },
        "live_update_package_hash": {
          "type": "string",
          "description": "Hash of all files (ReactNative or Cordova) deployed to device via LiveUpdate beacon. Helps identify the Release version on device or need to download updates in future.\n"
        },
        "wrapper_runtime_version": {
          "type": "string",
          "description": "Version of the wrapper technology framework (Xamarin runtime version or ReactNative or Cordova etc...). See wrapper_sdk_name to see if this version refers to Xamarin or ReactNative or other.\n"
        }
      },
      "required": [
        "sdk_name",
        "sdk_version",
        "os_name",
        "os_version",
        "locale",
        "time_zone_offset",
        "app_version",
        "app_build"
      ]
    },
    "StartSessionLog_Diagnostics": {
      "type": "object",
      "description": "Required explicit begin session log (a marker event for analytics service).",
      "x-ms-discriminator-value": "start_session",
      "allOf": [
        {
          "$ref": "#/definitions/Log_Diagnostics"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        }
      },
      "required": [
        "session_id"
      ]
    },
    "HanledErrorLog_Diagnostics": {
      "type": "object",
      "description": "Required explicit begin session log (a marker event for analytics service).",
      "x-ms-discriminator-value": "handled_error",
      "allOf": [
        {
          "$ref": "#/definitions/Log_Diagnostics"
        }
      ],
      "properties": {
        "error_id": {
          "type": "string",
          "format": "uuid",
          "description": "Error ID.\n"
        }
      },
      "required": [
        "error_id"
      ]
    },
    "StartServiceLog_Diagnostics": {
      "type": "object",
      "description": "Describe a AppCenter.Start API call from the SDK.",
      "x-ms-discriminator-value": "start_service",
      "allOf": [
        {
          "$ref": "#/definitions/Log_Diagnostics"
        }
      ],
      "properties": {
        "services": {
          "type": "array",
          "description": "The list of services of the AppCenter Start API call.",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        }
      }
    },
    "CustomPropertyLog_Diagnostics": {
      "type": "object",
      "description": "Set or remove custom properties.",
      "x-ms-discriminator-value": "custom_properties",
      "allOf": [
        {
          "$ref": "#/definitions/Log_Diagnostics"
        }
      ],
      "properties": {
        "properties": {
          "type": "array",
          "description": "Custom property changes.",
          "minItems": 1,
          "maxItems": 60,
          "items": {
            "$ref": "#/definitions/CustomProperty_Diagnostics"
          }
        }
      }
    },
    "CustomProperty_Diagnostics": {
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string"
        },
        "name": {
          "type": "string",
          "maxLength": 128,
          "pattern": "^[a-zA-Z][a-zA-Z0-9\\-_]*$"
        }
      },
      "required": [
        "type",
        "name"
      ]
    },
    "StringProperty_Diagnostics": {
      "type": "object",
      "description": "String property.",
      "x-ms-discriminator-value": "string",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty_Diagnostics"
        }
      ],
      "properties": {
        "value": {
          "type": "string",
          "maxLength": 128,
          "description": "String property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "NumberProperty_Diagnostics": {
      "type": "object",
      "description": "Number property.",
      "x-ms-discriminator-value": "number",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty_Diagnostics"
        }
      ],
      "properties": {
        "value": {
          "type": "number",
          "description": "Number property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "BooleanProperty_Diagnostics": {
      "type": "object",
      "description": "Boolean property.",
      "x-ms-discriminator-value": "boolean",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty_Diagnostics"
        }
      ],
      "properties": {
        "value": {
          "type": "boolean",
          "description": "Boolean property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "DateTimeProperty_Diagnostics": {
      "type": "object",
      "description": "Date and time property.",
      "x-ms-discriminator-value": "date_time",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty_Diagnostics"
        }
      ],
      "properties": {
        "value": {
          "type": "string",
          "format": "date-time",
          "description": "Date time property value."
        }
      },
      "required": [
        "value"
      ]
    },
    "ClearProperty_Diagnostics": {
      "type": "object",
      "description": "Clear an existing property.",
      "x-ms-discriminator-value": "clear",
      "allOf": [
        {
          "$ref": "#/definitions/CustomProperty_Diagnostics"
        }
      ]
    },
    "PageLog_Diagnostics": {
      "type": "object",
      "description": "Page view log (as in screens or activities).",
      "x-ms-discriminator-value": "page",
      "allOf": [
        {
          "$ref": "#/definitions/LogWithProperties_Diagnostics"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the page.\n"
        }
      },
      "required": [
        "name",
        "session_id"
      ]
    },
    "EventLog_Diagnostics": {
      "type": "object",
      "description": "Event log.",
      "x-ms-discriminator-value": "event",
      "allOf": [
        {
          "$ref": "#/definitions/LogWithProperties_Diagnostics"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for this event.\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the event.\n"
        }
      },
      "required": [
        "id",
        "name",
        "session_id"
      ]
    },
    "PushInstallationLog_Diagnostics": {
      "type": "object",
      "description": "Push installation Information.",
      "x-ms-discriminator-value": "push_installation",
      "allOf": [
        {
          "$ref": "#/definitions/Log_Diagnostics"
        }
      ],
      "properties": {
        "push_token": {
          "type": "string",
          "description": "The PNS handle for this installation.\n"
        }
      },
      "required": [
        "push_token"
      ]
    },
    "ErrorLog_Diagnostics": {
      "type": "object",
      "description": "Error log.",
      "x-ms-discriminator-value": "error",
      "allOf": [
        {
          "$ref": "#/definitions/Log_Diagnostics"
        }
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "description": "Session ID.\n"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Error identifier."
        },
        "app_launch_toffset": {
          "type": "integer",
          "format": "int64",
          "description": "Corresponds to the number of milliseconds elapsed between the time the error occurred and the app was launched.\n"
        }
      },
      "required": [
        "session_id",
        "id"
      ]
    },
    "Versions_Diagnostics": {
      "properties": {
        "versions": {
          "description": "list of version count",
          "type": "array",
          "items": {
            "$ref": "#/definitions/Version_Diagnostics"
          }
        },
        "total": {
          "description": "the total count of versions",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "Version_Diagnostics": {
      "type": "object",
      "properties": {
        "version": {
          "description": "version",
          "type": "string"
        },
        "count": {
          "description": "version count",
          "type": "integer",
          "format": "int64"
        },
        "previous_count": {
          "description": "the count of previous time range of the version",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "AvailableVersions_Diagnostics": {
      "type": "object",
      "properties": {
        "versions": {
          "description": "List of available versions.",
          "type": "array",
          "items": {
            "description": "Version name.",
            "type": "string",
            "format": "string"
          }
        },
        "total_count": {
          "description": "The full number of versions across all pages.",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "ErrorRetentionSettings": {
      "required": [
        "retention_in_days"
      ],
      "type": "object",
      "properties": {
        "retention_in_days": {
          "type": "integer",
          "enum": [
            28,
            90
          ]
        }
      }
    },
    "export_entity": {
      "type": "string",
      "enum": [
        "crashes",
        "errors",
        "attachments"
      ],
      "x-ms-enum": {
        "name": "ExportEntity",
        "modelAsString": false
      }
    },
    "ExportConfiguration": {
      "description": "Export configuration",
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "description": "Type of export configuration",
          "type": "string",
          "enum": [
            "blob_storage_connection_string",
            "application_insights_instrumentation_key",
            "blob_storage_linked_subscription",
            "application_insights_linked_subscription"
          ]
        },
        "export_entities": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/export_entity"
          }
        },
        "resource_name": {
          "type": "string",
          "description": "The resource name on azure"
        },
        "resource_group": {
          "type": "string",
          "description": "The resource group name on azure"
        }
      },
      "required": [
        "type"
      ]
    },
    "ExportBlobConfiguration": {
      "description": "Configuration for export to Blob Storage with blob format",
      "x-ms-discriminator-value": "export_blob_configuration",
      "allOf": [
        {
          "$ref": "#/definitions/ExportConfiguration"
        }
      ],
      "properties": {
        "blob_path_format_kind": {
          "description": "The path to the blob when enum set to 'WithoutAppId' is 'year/month/day/hour/minute' and when set to 'WithAppId' is 'appId/year/month/day/hour/minute'",
          "type": "string",
          "enum": [
            "WithoutAppId",
            "WithAppId"
          ],
          "x-ms-enum": {
            "name": "BlobPathFormatKind",
            "modelAsString": false
          }
        }
      }
    },
    "ExportConfigurationBlobStorageConnectionString": {
      "description": "Configuration for export to Blob Storage with customer provided connection string",
      "x-ms-discriminator-value": "blob_storage_connection_string",
      "allOf": [
        {
          "$ref": "#/definitions/ExportBlobConfiguration"
        }
      ],
      "properties": {
        "connection_string": {
          "description": "Connection string for blob storage account",
          "type": "string"
        }
      },
      "required": [
        "connection_string"
      ]
    },
    "ExportConfigurationAppInsightsKey": {
      "description": "Configuration for export to Application Insights resource with customer provided intrumentation key",
      "x-ms-discriminator-value": "application_insights_instrumentation_key",
      "allOf": [
        {
          "$ref": "#/definitions/ExportConfiguration"
        }
      ],
      "properties": {
        "instrumentation_key": {
          "description": "Instrumentation key for Application Insights resource",
          "type": "string"
        }
      },
      "required": [
        "instrumentation_key"
      ]
    },
    "ExportConfigurationBlobStorageLinkedSubscription": {
      "description": "Configuration for export to Blob Storage with customer linked subscription.",
      "x-ms-discriminator-value": "blob_storage_linked_subscription",
      "allOf": [
        {
          "$ref": "#/definitions/ExportBlobConfiguration"
        }
      ],
      "properties": {
        "subscription_id": {
          "description": "Id of customer subscription linked in App Center",
          "type": "string"
        }
      },
      "required": [
        "subscription_id"
      ]
    },
    "ExportConfigurationAppInsightsLinkedSubscription": {
      "description": "Configuration for export to Application Insights resource with customer linked subscription.",
      "x-ms-discriminator-value": "application_insights_linked_subscription",
      "allOf": [
        {
          "$ref": "#/definitions/ExportConfiguration"
        }
      ],
      "properties": {
        "subscription_id": {
          "description": "Id of customer subscription linked in App Center",
          "type": "string"
        }
      },
      "required": [
        "subscription_id"
      ]
    },
    "ExportConfigurationResult": {
      "description": "Export configuration result",
      "type": "object",
      "properties": {
        "id": {
          "description": "Export configuration id",
          "type": "string"
        },
        "export_type": {
          "description": "Target resource type of export configuration",
          "type": "string",
          "enum": [
            "BlobStorage",
            "AppInsights"
          ],
          "x-ms-enum": {
            "name": "ExportType",
            "modelAsString": false
          }
        },
        "creation_time": {
          "description": "Creation time in ISO 8601 format",
          "type": "string"
        },
        "last_run_time": {
          "description": "Latest time in ISO 8601 format when export completed successfully",
          "type": "string"
        },
        "export_entities": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/export_entity"
          }
        },
        "state": {
          "description": "State of the export job",
          "type": "string",
          "enum": [
            "Enabled",
            "Disabled",
            "Pending",
            "Deleted",
            "Invalid"
          ],
          "x-ms-enum": {
            "name": "ExportState",
            "modelAsString": false
          }
        },
        "state_info": {
          "description": "Additional information about export configuration state",
          "type": "string"
        },
        "resource_group": {
          "description": "resource group for the storage account/App Insights resource",
          "type": "string"
        },
        "resource_name": {
          "description": "Storage accout or Appinsights resource name",
          "type": "string"
        },
        "export_configuration": {
          "$ref": "#/definitions/ExportConfiguration"
        }
      },
      "required": [
        "id",
        "export_type",
        "creation_time",
        "state"
      ]
    },
    "ExportConfigurationListResult": {
      "description": "List of export configurations",
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ExportConfigurationResult"
          }
        },
        "total": {
          "description": "the total count of exports",
          "type": "integer",
          "format": "int64"
        },
        "nextLink": {
          "type": "string"
        }
      },
      "required": [
        "values"
      ]
    },
    "NotificationsListResult": {
      "description": "List of notifications",
      "type": "object",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/NotificationOverviewResult"
          }
        },
        "total": {
          "description": "the total count of notifications",
          "type": "integer",
          "format": "int64"
        },
        "nextLink": {
          "type": "string"
        }
      },
      "required": [
        "values"
      ]
    },
    "NotificationOverviewResult": {
      "description": "Notification statistics",
      "type": "object",
      "properties": {
        "notification_id": {
          "description": "Notification id.",
          "type": "string"
        },
        "name": {
          "description": "Notification name",
          "type": "string",
          "maxLength": 64
        },
        "notification_target": {
          "$ref": "#/definitions/NotificationTarget"
        },
        "send_time": {
          "description": "Notification send time",
          "type": "string",
          "format": "date-time"
        },
        "pns_send_failure": {
          "description": "Number of the notifications failed to send to the push provider.",
          "type": "integer",
          "format": "long"
        },
        "pns_send_success": {
          "description": "Number of the notifications successfully sent to push the provider.",
          "type": "integer",
          "format": "long"
        },
        "state": {
          "type": "string",
          "description": "State of the notification.",
          "enum": [
            "Queued",
            "Sending",
            "Completed",
            "Failed",
            "NoTargetFound"
          ],
          "x-ms-enum": {
            "name": "notification_states",
            "modelAsString": true
          }
        }
      },
      "required": [
        "notification_id",
        "state"
      ]
    },
    "NotificationDetailsResult": {
      "description": "Notification statistics",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationOverviewResult"
        }
      ],
      "properties": {
        "notification_content": {
          "$ref": "#/definitions/NotificationContent"
        },
        "failure_outcomes": {
          "description": "Failture outcome counts",
          "type": "array",
          "items": {
            "$ref": "#/definitions/NotificationFailureOutcomeCount"
          }
        }
      },
      "required": [
        "notification_id",
        "state",
        "notification_content"
      ]
    },
    "NotificationIdList": {
      "description": "List of notification Ids",
      "properties": {
        "values": {
          "description": "List of notification Ids.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "values"
      ]
    },
    "NotificationDefinition": {
      "description": "Notification definition object",
      "type": "object",
      "properties": {
        "notification_target": {
          "$ref": "#/definitions/NotificationTarget"
        },
        "notification_content": {
          "$ref": "#/definitions/NotificationContent"
        }
      },
      "example": {
        "notification_target": {
          "type": "devices_target",
          "devices": [
            "146fbdde-0aaf-444d-bcc0-6d84520c9080",
            "746fbdde-0aaf-444d-bcc0-6d84520c9111"
          ]
        },
        "notification_content": {
          "name": "Transaction 23-09814",
          "title": "Sales Order Update",
          "body": "Sales order 18987 for customer Acme Dynamite status changed to SHIPPED"
        }
      },
      "required": [
        "notification_content"
      ]
    },
    "NotificationContent": {
      "description": "Notification definition object",
      "type": "object",
      "properties": {
        "name": {
          "description": "Notification name",
          "type": "string",
          "minLength": 3,
          "maxLength": 64
        },
        "title": {
          "description": "Notification title",
          "type": "string",
          "maxLength": 128
        },
        "body": {
          "description": "Notification body",
          "type": "string",
          "minLength": 1,
          "maxLength": 4000
        },
        "custom_data": {
          "description": "Notification custom data (such as badge, color, sound, etc.)",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "required": [
        "name",
        "body"
      ]
    },
    "NotificationSendSucceededResult": {
      "description": "Notification send succeeded.",
      "properties": {
        "notification_id": {
          "type": "string",
          "description": "The unique notification identifier."
        }
      },
      "required": [
        "notification_id"
      ]
    },
    "NotificationTarget": {
      "description": "Type of Notification target (audiences, devices, user ids or account ids). The object must include the correct properties for the specified target type.",
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "audiences_target",
            "devices_target",
            "user_ids_target",
            "account_ids_target"
          ]
        }
      },
      "required": [
        "type"
      ]
    },
    "NotificationTargetUserIds": {
      "description": "Notification per User IDs",
      "x-ms-discriminator-value": "user_ids_target",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationTarget"
        }
      ],
      "properties": {
        "user_ids": {
          "description": "List of user IDs to target",
          "type": "array",
          "items": {
            "description": "User Id.",
            "type": "string"
          }
        }
      },
      "required": [
        "user_ids"
      ]
    },
    "NotificationTargetAccountIds": {
      "description": "Notification per Account IDs",
      "x-ms-discriminator-value": "account_ids_target",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationTarget"
        }
      ],
      "properties": {
        "account_ids": {
          "description": "List of account IDs to target",
          "type": "array",
          "items": {
            "description": "Account Id.",
            "type": "string"
          }
        }
      },
      "required": [
        "account_ids"
      ]
    },
    "NotificationTargetAudiences": {
      "description": "Notification target audiences.",
      "x-ms-discriminator-value": "audiences_target",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationTarget"
        }
      ],
      "properties": {
        "audiences": {
          "description": "List of target audiences.",
          "type": "array",
          "items": {
            "description": "Audience Id.",
            "type": "string"
          }
        }
      },
      "required": [
        "audiences"
      ]
    },
    "NotificationTargetDevices": {
      "description": "Notification target devices. If null, all devices will be targeted(broadcast).",
      "x-ms-discriminator-value": "devices_target",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationTarget"
        }
      ],
      "properties": {
        "devices": {
          "description": "List of target devices.",
          "type": "array",
          "items": {
            "description": "Device Id",
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "required": [
        "devices"
      ]
    },
    "NotificationConfig": {
      "description": "Generic notification configuration. Is a base type and caller should choose one of the derived types specified in the enum.",
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "apns_token_config",
            "gcm_config",
            "wns_config"
          ]
        }
      },
      "required": [
        "type"
      ]
    },
    "NotificationConfigApple": {
      "description": "Apple notification certificate configuration.",
      "x-ms-discriminator-value": "apns_config",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationConfig"
        }
      ],
      "properties": {
        "endpoint_type": {
          "$ref": "#/definitions/AppleNotificationEndpointType"
        },
        "cert_encoded": {
          "description": "Base64 encoded certificate string.",
          "type": "string"
        },
        "cert_filename": {
          "description": "Certificate file name",
          "type": "string"
        },
        "cert_key": {
          "description": "Certificate password",
          "type": "string"
        }
      },
      "required": [
        "endpoint_type",
        "cert_encoded",
        "cert_filename",
        "cert_key"
      ]
    },
    "NotificationConfigAppleToken": {
      "description": "Apple notification auth token configuration.",
      "x-ms-discriminator-value": "apns_token_config",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationConfig"
        }
      ],
      "properties": {
        "key_id": {
          "description": "A 10-character key identifier (kid).",
          "type": "string"
        },
        "id": {
          "description": "Application ID.",
          "type": "string"
        },
        "prefix": {
          "description": "Application prefix.",
          "type": "string"
        },
        "token": {
          "description": "Provider Authentication Token.",
          "type": "string"
        },
        "endpoint_type": {
          "$ref": "#/definitions/AppleNotificationEndpointType"
        }
      },
      "required": [
        "key_id",
        "id",
        "prefix",
        "token",
        "endpoint_type"
      ]
    },
    "NotificationConfigGoogle": {
      "description": "Google notification configuration.",
      "x-ms-discriminator-value": "gcm_config",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationConfig"
        }
      ],
      "properties": {
        "google_api_key": {
          "description": "GCM API key.",
          "type": "string"
        }
      },
      "required": [
        "google_api_key"
      ]
    },
    "NotificationConfigWindows": {
      "description": "WNS notification configuration.",
      "x-ms-discriminator-value": "wns_config",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationConfig"
        }
      ],
      "properties": {
        "package_sid": {
          "description": "Package security identifier (SID).",
          "type": "string"
        },
        "secret_key": {
          "description": "Secret key.",
          "type": "string"
        }
      },
      "required": [
        "package_sid",
        "secret_key"
      ]
    },
    "NotificationConfigResult": {
      "description": "Generic notification configuration result.",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ]
    },
    "NotificationConfigAppleResult": {
      "description": "Apple notification certificate configuration result.",
      "x-ms-discriminator-value": "apns_config",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationConfigResult"
        }
      ],
      "properties": {
        "endpoint_type": {
          "$ref": "#/definitions/AppleNotificationEndpointType"
        },
        "cert_expiration": {
          "description": "Certificate expiration date.",
          "type": "string",
          "format": "date-time"
        },
        "cert_filename": {
          "description": "Certificate file name",
          "type": "string"
        }
      },
      "required": [
        "endpoint_type",
        "cert_expiration",
        "cert_filename"
      ]
    },
    "NotificationConfigAppleTokenResult": {
      "description": "Apple notification auth token configuration result.",
      "x-ms-discriminator-value": "apns_token_config",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationConfigResult"
        }
      ],
      "properties": {
        "key_id": {
          "description": "A 10-character key identifier (kid).",
          "type": "string"
        },
        "id": {
          "description": "Application ID.",
          "type": "string"
        },
        "prefix": {
          "description": "Application Prefix.",
          "type": "string"
        },
        "endpoint_type": {
          "$ref": "#/definitions/AppleNotificationEndpointType"
        }
      },
      "required": [
        "key_id",
        "id",
        "prefix",
        "endpoint_type"
      ]
    },
    "NotificationConfigGoogleResult": {
      "description": "Google notification configuration result.",
      "x-ms-discriminator-value": "gcm_config",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationConfigResult"
        }
      ],
      "properties": {
        "google_api_key": {
          "description": "GCM API key.",
          "type": "string"
        }
      },
      "required": [
        "google_api_key"
      ]
    },
    "NotificationConfigWindowsResult": {
      "description": "WNS notification configuration result.",
      "x-ms-discriminator-value": "wns_config",
      "allOf": [
        {
          "$ref": "#/definitions/NotificationConfigResult"
        }
      ],
      "properties": {
        "package_sid": {
          "description": "Package security identifier (SID).",
          "type": "string"
        },
        "secret_key": {
          "description": "windows push configuration secret key.",
          "type": "string"
        }
      },
      "required": [
        "package_sid"
      ]
    },
    "AppleNotificationEndpointType": {
      "description": "Type of endpoint the certificate or token are associated with",
      "type": "string",
      "enum": [
        "production",
        "sandbox"
      ],
      "x-ms-enum": {
        "name": "AppleNotificationEndpointType",
        "modelAsString": true
      }
    },
    "NotificationPlatformType": {
      "description": "Notification platform type",
      "type": "string",
      "enum": [
        "apns",
        "gcm",
        "wns"
      ],
      "x-ms-enum": {
        "name": "NotificationPlatformType",
        "modelAsString": true
      }
    },
    "NotificationFailureOutcomeCount": {
      "description": "Notification failure outcome count",
      "type": "object",
      "properties": {
        "failure_reason": {
          "description": "The reason of the notification failure",
          "type": "string"
        },
        "count": {
          "description": "count of this type of failure",
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "ExportConfig": {
      "description": "Generic export configuration.",
      "type": "object",
      "properties": {
        "blob_container_sas_uri": {
          "type": "string",
          "description": "A shared access signature (SAS) URI with Read, Write and Delete permissions on a container."
        }
      },
      "required": [
        "blob_container_sas_uri"
      ]
    },
    "ExportStartedResult": {
      "description": "Export started.",
      "properties": {
        "export_id": {
          "type": "string",
          "description": "The unique export identifier."
        }
      },
      "required": [
        "export_id"
      ]
    },
    "ExportStatusResult": {
      "description": "Export status",
      "type": "object",
      "properties": {
        "export_id": {
          "description": "The unique export identifier.",
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "Status of the export.",
          "enum": [
            "InProgress",
            "Completed",
            "Failed"
          ],
          "x-ms-enum": {
            "name": "ExportStatus"
          }
        }
      },
      "required": [
        "export_id",
        "status"
      ]
    },
    "AppId": {
      "properties": {
        "id": {
          "description": "the id of the app",
          "type": "string"
        }
      }
    },
    "DeviceConfiguration": {
      "properties": {
        "name": {
          "description": "The name of the device model and OS version",
          "type": "string"
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The unique id of the device configuration"
        },
        "tier": {
          "description": "The tier",
          "type": "number"
        },
        "image": {
          "properties": {
            "full": {
              "type": "string"
            },
            "thumb": {
              "type": "string"
            }
          }
        },
        "model": {
          "$ref": "#/definitions/DeviceModel"
        },
        "os": {
          "type": "string"
        },
        "osName": {
          "type": "string"
        },
        "marketShare": {
          "type": "number"
        }
      }
    },
    "DeviceSetConfiguration": {
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The unique id of the device configuration"
        },
        "image": {
          "properties": {
            "thumb": {
              "type": "string"
            }
          }
        },
        "model": {
          "$ref": "#/definitions/DeviceSetModel"
        },
        "os": {
          "type": "string"
        },
        "osName": {
          "type": "string"
        }
      }
    },
    "DeviceModel": {
      "properties": {
        "name": {
          "type": "string"
        },
        "manufacturer": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "platform": {
          "type": "string"
        },
        "dimensions": {
          "$ref": "#/definitions/DeviceDimensions"
        },
        "resolution": {
          "$ref": "#/definitions/DeviceResolution"
        },
        "releaseDate": {
          "type": "string"
        },
        "formFactor": {
          "type": "string"
        },
        "screenSize": {
          "$ref": "#/definitions/DeviceScreenSize"
        },
        "cpu": {
          "$ref": "#/definitions/DeviceCpu"
        },
        "memory": {
          "$ref": "#/definitions/DeviceMemory"
        },
        "screenRotation": {
          "type": "number"
        },
        "deviceFrame": {
          "$ref": "#/definitions/DeviceFrame"
        },
        "availabilityCount": {
          "type": "number"
        }
      }
    },
    "DeviceSetModel": {
      "properties": {
        "name": {
          "type": "string"
        },
        "manufacturer": {
          "type": "string"
        },
        "releaseDate": {
          "type": "string"
        },
        "formFactor": {
          "type": "string"
        }
      }
    },
    "DeviceScreenSize": {
      "description": "Physical device screen dimensions",
      "properties": {
        "cm": {
          "type": "string"
        },
        "in": {
          "type": "string"
        }
      }
    },
    "DeviceResolution": {
      "description": "Device screen resolution",
      "properties": {
        "height": {
          "type": "string"
        },
        "width": {
          "type": "string"
        },
        "ppi": {
          "type": "string"
        }
      }
    },
    "DeviceDimensions": {
      "description": "Physical device dimensions",
      "properties": {
        "depth": {
          "type": "object"
        },
        "height": {
          "type": "object"
        },
        "width": {
          "type": "object"
        }
      }
    },
    "DeviceCpu": {
      "description": "CPU data for device",
      "properties": {
        "frequency": {
          "type": "string"
        },
        "core": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      }
    },
    "DeviceMemory": {
      "description": "Memory data for device",
      "properties": {
        "formattedSize": {
          "type": "string"
        }
      }
    },
    "DeviceFrame": {
      "properties": {
        "grid": {
          "$ref": "#/definitions/DeviceFrameDefinition"
        },
        "full": {
          "$ref": "#/definitions/DeviceFrameDefinition"
        }
      }
    },
    "DeviceFrameDefinition": {
      "properties": {
        "width": {
          "type": "number"
        },
        "height": {
          "type": "number"
        },
        "frameUrl": {
          "type": "string"
        },
        "screen": {
          "type": "array",
          "items": {
            "type": "number"
          }
        }
      }
    },
    "TestRun": {
      "title": "Test Run",
      "description": "Summary single test run on Xamarin Test Cloud",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The unique id of the test upload"
        },
        "date": {
          "description": "The date and time the test was uploaded",
          "type": "string"
        },
        "appVersion": {
          "description": "The compiled version of the app binary",
          "type": "string"
        },
        "testSeries": {
          "description": "The name of the test series with which this test upload is associated",
          "type": "string"
        },
        "platform": {
          "description": "The device platform targeted by the test. Possible values are 'ios' or 'android'",
          "type": "string"
        },
        "runStatus": {
          "description": "The current status of the test run, in relation to the various phases",
          "type": "string"
        },
        "resultStatus": {
          "description": "The passed/failed state",
          "type": "string"
        },
        "state": {
          "description": "Deprecated. Use runStatus instead.",
          "type": "string"
        },
        "status": {
          "description": "Deprecated. Use resultStatus instead.",
          "type": "string"
        },
        "description": {
          "description": "Human readable explanation of the current test status",
          "type": "string"
        },
        "stats": {
          "$ref": "#/definitions/TestRunStatistics"
        },
        "testType": {
          "description": "The name of the test framework used to run this test",
          "type": "string"
        }
      }
    },
    "TestRunStatistics": {
      "title": "Test Run Statistics",
      "description": "Summary single test run on Xamarin Test Cloud",
      "type": "object",
      "properties": {
        "devices": {
          "description": "Number of devices running the test",
          "type": "number"
        },
        "devicesFinished": {
          "description": "Number of finished devices",
          "type": "number"
        },
        "devicesFailed": {
          "description": "Number of failed devices",
          "type": "number"
        },
        "total": {
          "description": "Number of tests in total",
          "type": "number"
        },
        "passed": {
          "description": "Number of passed tests",
          "type": "number"
        },
        "failed": {
          "description": "Number of failed tests",
          "type": "number"
        },
        "skipped": {
          "description": "Number of skipped tests",
          "type": "number"
        },
        "peakMemory": {
          "description": "The max amount of MB used during the test run",
          "type": "number"
        },
        "totalDeviceMinutes": {
          "description": "The number of minutes of device time the test has been runnign",
          "type": "number"
        }
      }
    },
    "TestSeries": {
      "title": "Test Series",
      "description": "Summary of a single test series",
      "type": "object",
      "properties": {
        "slug": {
          "description": "Unique, human-readable identifier of the test series",
          "type": "string"
        },
        "name": {
          "description": "Name of the test series",
          "type": "string"
        },
        "mostRecentActivity": {
          "description": "Date of the latest test run that used this test series",
          "type": "string",
          "format": "dateTime"
        },
        "testRuns": {
          "description": "Most recent test runs",
          "type": "array",
          "items": {
            "$ref": "#/definitions/TestRunSummary"
          }
        }
      },
      "required": [
        "slug",
        "name"
      ]
    },
    "TestSeriesName": {
      "title": "Name of the test series",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the new test series"
        }
      },
      "required": [
        "name"
      ]
    },
    "TestRunSummary": {
      "title": "Test Run Summary",
      "description": "Most important information about a test run.",
      "type": "object",
      "properties": {
        "date": {
          "description": "Date of the test run.",
          "type": "string",
          "format": "dateTime"
        },
        "statusDescription": {
          "description": "Human-readable status of the test run.",
          "type": "string"
        },
        "failed": {
          "description": "Number of failed tests",
          "type": "number"
        },
        "passed": {
          "description": "Number of passed tests",
          "type": "number"
        },
        "completed": {
          "description": "Tells whether the test run has completed",
          "type": "boolean"
        }
      }
    },
    "DeviceList": {
      "title": "Device List",
      "description": "A list of device IDs",
      "type": "object",
      "properties": {
        "devices": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "devices"
      ]
    },
    "DeviceSelection": {
      "title": "Device Selection",
      "description": "Short ID for a list of device IDs",
      "type": "object",
      "properties": {
        "shortId": {
          "description": "Identifier of the device selection",
          "type": "string"
        }
      },
      "required": [
        "shortId"
      ]
    },
    "DeviceSetUpdate": {
      "title": "Device Set update information",
      "description": "The name of the device set and the list of device IDs",
      "properties": {
        "devices": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of device IDs"
        },
        "name": {
          "type": "string",
          "description": "The name of the device set"
        }
      },
      "required": [
        "devices",
        "name"
      ]
    },
    "DeviceSet": {
      "title": "Device Set",
      "description": "The name and devices of the device set",
      "type": "object",
      "properties": {
        "id": {
          "description": "Identifier of the device set",
          "type": "string"
        },
        "manufacturerCount": {
          "description": "The number of manufacturers in the device set's device selection",
          "type": "number"
        },
        "name": {
          "description": "Name of the device set",
          "type": "string"
        },
        "slug": {
          "description": "Slug of the device set",
          "type": "string"
        },
        "owner": {
          "$ref": "#/definitions/DeviceSetOwner"
        },
        "osVersionCount": {
          "description": "The number of os versions in the device set's device selection",
          "type": "number"
        },
        "deviceConfigurations": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/DeviceSetConfiguration"
          }
        }
      },
      "required": [
        "id",
        "name",
        "owner",
        "deviceConfigurations"
      ]
    },
    "DeviceSetOwner": {
      "title": "Device Set Owner",
      "description": "The owner of a device set",
      "type": "object",
      "properties": {
        "type": {
          "description": "Type of account",
          "type": "string"
        },
        "id": {
          "description": "Account ID",
          "type": "string"
        },
        "displayName": {
          "description": "Display name of the account",
          "type": "string"
        },
        "name": {
          "description": "Name of the account",
          "type": "string"
        }
      },
      "required": [
        "type",
        "id",
        "name"
      ]
    },
    "Subscription": {
      "title": "Subscription",
      "description": "Subscription information",
      "type": "object",
      "properties": {
        "startsAt": {
          "description": "The date the subscription began",
          "type": "string",
          "format": "dateTime"
        },
        "endsAt": {
          "description": "The date the subscription will end or ended",
          "type": "string",
          "format": "dateTime"
        },
        "daysLeft": {
          "description": "The number of days left in the subscription",
          "type": "number"
        },
        "tier": {
          "$ref": "#/definitions/Tier"
        },
        "active": {
          "description": "Is the subscription currently active?",
          "type": "boolean"
        },
        "id": {
          "description": "Id of the subscription",
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "Tier": {
      "title": "Subscription Tier",
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the tier",
          "type": "string"
        }
      }
    },
    "TestReport": {
      "required": [
        "app_upload_id",
        "date",
        "testType",
        "platform",
        "stats",
        "id",
        "schema_version",
        "revision",
        "features",
        "finished_device_snapshots",
        "device_logs",
        "date_finished"
      ],
      "properties": {
        "app_upload_id": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "testType": {
          "type": "string"
        },
        "platform": {
          "type": "string"
        },
        "stats": {
          "required": [
            "os",
            "devices",
            "filesize",
            "totalDeviceMinutes",
            "devices_not_runned",
            "failed",
            "skipped",
            "passed",
            "total",
            "devices_finished",
            "devices_failed",
            "devices_skipped",
            "step_count"
          ],
          "properties": {
            "os": {
              "type": "number"
            },
            "devices": {
              "type": "number"
            },
            "filesize": {
              "type": "number"
            },
            "totalDeviceMinutes": {
              "type": "number"
            },
            "devices_not_runned": {
              "type": "number"
            },
            "failed": {
              "type": "number"
            },
            "skipped": {
              "type": "number"
            },
            "passed": {
              "type": "number"
            },
            "total": {
              "type": "number"
            },
            "devices_finished": {
              "type": "number"
            },
            "devices_failed": {
              "type": "number"
            },
            "devices_skipped": {
              "type": "number"
            },
            "step_count": {
              "type": "number"
            },
            "artifacts": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "type": "object"
        },
        "id": {
          "type": "string"
        },
        "schema_version": {
          "type": "number"
        },
        "revision": {
          "type": "number"
        },
        "features": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "tests": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "testName": {
                      "type": "string"
                    },
                    "runs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "number": {
                            "type": "number"
                          },
                          "steps": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "stepName": {
                                  "type": "string"
                                },
                                "id": {
                                  "type": "string"
                                },
                                "stepExecutions": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "device_snapshot_id": {
                                        "type": "string"
                                      },
                                      "status": {
                                        "type": "string"
                                      },
                                      "timestamp": {
                                        "type": "number"
                                      }
                                    }
                                  }
                                },
                                "failed": {
                                  "type": "number"
                                },
                                "skipped": {
                                  "type": "number"
                                },
                                "step_report_url": {
                                  "type": "string"
                                }
                              }
                            }
                          },
                          "failed": {
                            "type": "number"
                          },
                          "skipped": {
                            "type": "number"
                          },
                          "report_url": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string"
                          }
                        }
                      }
                    },
                    "peakMemory": {
                      "type": "number"
                    },
                    "peakDuration": {
                      "type": "number"
                    }
                  }
                }
              },
              "failed": {
                "type": "number"
              },
              "skipped": {
                "type": "number"
              },
              "peakMemory": {
                "type": "number"
              },
              "peakDuration": {
                "type": "number"
              }
            }
          }
        },
        "finished_device_snapshots": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "device_logs": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "device_snapshot_id": {
                "type": "string"
              },
              "device_log": {
                "type": "string"
              },
              "test_log": {
                "type": "string"
              },
              "appium_log": {
                "type": "string"
              }
            }
          }
        },
        "date_finished": {
          "type": "string"
        },
        "errorMessage": {
          "type": "string"
        },
        "snapshot_fatal_errors": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "device_snapshot_id": {
                "type": "string"
              },
              "error_message": {
                "type": "string"
              },
              "error_title": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "StepReport": {
      "required": [
        "finishedSnapshots",
        "deviceScreenshots"
      ],
      "properties": {
        "finishedSnapshots": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "deviceScreenshots": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "device_snapshot_id": {
                "type": "string"
              },
              "stacktrace": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "crash_data": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "status": {
                "type": "string"
              },
              "title": {
                "type": "string"
              },
              "screenshot": {
                "required": [
                  "urls",
                  "rotation",
                  "landscape"
                ],
                "properties": {
                  "urls": {
                    "required": [
                      "original",
                      "small",
                      "medium",
                      "large"
                    ],
                    "properties": {
                      "original": {
                        "type": "string"
                      },
                      "small": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string"
                      },
                      "large": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "rotation": {
                    "type": "number"
                  },
                  "landscape": {
                    "type": "boolean"
                  }
                },
                "type": "object"
              },
              "log_file": {
                "type": "string"
              },
              "appium_log_file": {
                "type": "string"
              },
              "raw_crash_data": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "TestCloudErrorDetails": {
      "title": "Test Cloud Error Details",
      "description": "Details of a failed operation",
      "type": "object",
      "properties": {
        "status": {
          "description": "Status of the operation",
          "type": "string"
        },
        "message": {
          "description": "Human-readable message that describes the error",
          "type": "string"
        }
      },
      "required": [
        "status",
        "message"
      ]
    },
    "TestCloudFileHashDeprecated": {
      "title": "Test Cloud File Hash",
      "description": "Hash, type, path and byte range of a file that is required in test run",
      "type": "object",
      "properties": {
        "file_type": {
          "type": "string",
          "description": "Type of the file",
          "enum": [
            "dsym-file",
            "app-file",
            "test-file"
          ]
        },
        "checksum": {
          "type": "string",
          "description": "SHA256 hash of the file"
        },
        "relative_path": {
          "type": "string",
          "description": "Relative path of the file"
        },
        "byte_range": {
          "type": "string",
          "description": "Range of bytes required to verify ownership of the file"
        }
      },
      "required": [
        "file_type",
        "checksum",
        "relative_path"
      ]
    },
    "TestCloudFileHash": {
      "title": "Test Cloud File Hash",
      "description": "Hash, type, path and byte range of a file that is required in test run",
      "type": "object",
      "properties": {
        "fileType": {
          "type": "string",
          "description": "Type of the file",
          "enum": [
            "dsym-file",
            "app-file",
            "test-file"
          ]
        },
        "checksum": {
          "type": "string",
          "description": "SHA256 hash of the file"
        },
        "relativePath": {
          "type": "string",
          "description": "Relative path of the file"
        }
      },
      "required": [
        "fileType",
        "checksum",
        "relativePath"
      ]
    },
    "TestCloudFileHashResponse": {
      "title": "Test Cloud File Hash Response",
      "description": "Response message for single uploaded file hash",
      "type": "object",
      "properties": {
        "fileType": {
          "type": "string",
          "description": "Type of the file",
          "enum": [
            "dsym-file",
            "app-file",
            "test-file"
          ]
        },
        "checksum": {
          "type": "string",
          "description": "SHA256 hash of the file"
        },
        "relativePath": {
          "type": "string",
          "description": "Relative path of the file"
        },
        "uploadStatus": {
          "$ref": "#/definitions/TestCloudHashUploadStatus",
          "description": "Status of the upload"
        }
      },
      "required": [
        "fileType",
        "checksum",
        "uploadStatus"
      ]
    },
    "TestCloudHashUploadStatus": {
      "title": "Test Cloud Hash Upload Status",
      "description": "Result of uploading a single file hash",
      "type": "object",
      "properties": {
        "statusCode": {
          "type": "number",
          "description": "HTTP status code that represent result of upload"
        },
        "location": {
          "type": "string",
          "description": "URI that should be used to make POST request if file with given hash doesn't exist. This is set when status_code is equal to 412"
        }
      },
      "required": [
        "statusCode"
      ]
    },
    "TestCloudStartTestRunOptions": {
      "title": "Test Cloud Start Test Run Options",
      "description": "Options required to start the test run",
      "type": "object",
      "properties": {
        "test_framework": {
          "type": "string",
          "description": "Test framework used by tests."
        },
        "device_selection": {
          "type": "string",
          "description": "Device selection string."
        },
        "language": {
          "type": "string",
          "description": "Language that should be used to run tests."
        },
        "locale": {
          "type": "string",
          "description": "Locale that should be used to run tests."
        },
        "test_series": {
          "type": "string",
          "description": "Name of the test series."
        },
        "test_parameters": {
          "type": "object",
          "description": "A JSON dictionary with additional test parameters"
        }
      },
      "required": [
        "test_framework",
        "device_selection"
      ]
    },
    "TestCloudStartTestRunResult": {
      "title": "Test Cloud Test Run Start Result",
      "description": "Result of starting a test run",
      "type": "object",
      "properties": {
        "accepted_devices": {
          "description": "List with names of accepted devices",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "rejected_devices": {
          "description": "List with names and descriptions of rejected devices",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "TestRunState": {
      "title": "Test Run State",
      "description": "Current status of a test run",
      "type": "object",
      "properties": {
        "message": {
          "description": "Multi-line message that describes the status",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "wait_time": {
          "description": "Time (in seconds) that the client should wait for before checking the status again",
          "type": "integer"
        },
        "exit_code": {
          "description": "The exit code that the client should use when exiting. Used for indicating status to the caller of the client.\n0: test run completes with no failing tests\n1: test run completes with at least one failing test\n2: test run failed to complete. Status for test run is unknown\n",
          "type": "integer"
        }
      }
    },
    "PerformanceReport": {
      "title": "Performance Report",
      "description": "Report data for a single test (a.k.a. scenario)",
      "properties": {
        "device_snapshot_id": {
          "type": "string"
        },
        "performance_data": {
          "required": [
            "steps",
            "elapsed-secs-end",
            "elapsed-secs-start",
            "elapsed-secs",
            "id"
          ],
          "properties": {
            "steps": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "avg-cpu": {
                    "type": "number"
                  },
                  "avg-mem": {
                    "type": "number"
                  },
                  "samples": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "cpu": {
                          "type": "number"
                        },
                        "mem": {
                          "type": "number"
                        },
                        "elapsed-secs": {
                          "type": "number"
                        }
                      }
                    }
                  },
                  "elapsed-secs-end": {
                    "type": "number"
                  },
                  "elapsed-secs-start": {
                    "type": "number"
                  },
                  "elapsed-secs": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  },
                  "id": {
                    "type": "string"
                  }
                }
              }
            },
            "elapsed-secs-end": {
              "type": "number"
            },
            "elapsed-secs-start": {
              "type": "number"
            },
            "elapsed-secs": {
              "type": "number"
            },
            "id": {
              "type": "string"
            }
          },
          "type": "object"
        },
        "video": {
          "required": [
            "video_metadata",
            "video_url"
          ],
          "properties": {
            "video_metadata": {
              "type": "object",
              "properties": {
                "events": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "millis": {
                        "type": "number"
                      },
                      "name": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            },
            "video_url": {
              "type": "string"
            }
          }
        }
      }
    },
    "SubmitDsrOperationRequest": {
      "type": "object",
      "properties": {
        "request": {
          "type": "string",
          "enum": [
            "Delete",
            "Purge",
            "UndoDelete",
            "Export"
          ]
        },
        "accountId": {
          "type": "string"
        },
        "appId": {
          "type": "string"
        },
        "operationId": {
          "type": "string",
          "description": "The DSR operation ID provided by the GDPR coordinator. Used for tracking only."
        },
        "requestId": {
          "type": "string",
          "description": "Request ID provided by the GDPR coordinator. Used for tracking."
        }
      }
    },
    "SubmitDsrOperationResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "description": "The status of the DSR operation",
          "enum": [
            "NotStarted",
            "InProgress",
            "Completed",
            "Failure"
          ]
        }
      }
    },
    "CreateGdprTestData": {
      "type": "object",
      "properties": {
        "appId": {
          "type": "string",
          "format": "uuid"
        },
        "accountId": {
          "type": "string",
          "format": "uuid"
        },
        "userName": {
          "type": "string"
        },
        "userEmail": {
          "type": "string"
        },
        "appName": {
          "type": "string"
        }
      }
    },
    "TestGDPRUser": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "TestGDPRAccount": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "TestGDPRFeatureFlag": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "target_id": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "TestGDPRResourceList": {
      "type": "object",
      "properties": {
        "resources": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "rel": {
                "type": "string"
              },
              "path": {
                "type": "string",
                "format": "URL"
              }
            }
          }
        }
      }
    },
    "TestGDPRHashFile": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "filename": {
          "type": "string"
        }
      }
    },
    "TestGDPRTestRun": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "app_hash_file_id": {
          "type": "string",
          "format": "uuid"
        },
        "locale": {
          "type": "string"
        },
        "dsym_hash_file_id": {
          "type": "string",
          "format": "uuid"
        },
        "app_hash_file_url": {
          "type": "string"
        },
        "dsym_hash_file_url": {
          "type": "string"
        },
        "app_icon_url": {
          "type": "string"
        }
      }
    },
    "TestGDPRFileSetFile": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string"
        },
        "hash_file_id": {
          "type": "string",
          "format": "uuid"
        },
        "app_upload_id": {
          "type": "string",
          "format": "uuid"
        },
        "hash_file_url": {
          "type": "string"
        }
      }
    },
    "TestGDPRPipelineTest": {
      "type": "object",
      "properties": {
        "app_upload_id": {
          "type": "string",
          "format": "uuid"
        },
        "test_parameters": {
          "type": "object"
        }
      }
    },
    "Deployment": {
      "required": [
        "name"
      ],
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "latest_release": {
          "$ref": "#/definitions/CodePushRelease"
        }
      }
    },
    "DeploymentInternal": {
      "allOf": [
        {
          "$ref": "#/definitions/Deployment"
        }
      ],
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "DeploymentModification": {
      "required": [
        "name"
      ],
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        }
      }
    },
    "CodePushReleaseLabel": {
      "properties": {
        "label": {
          "type": "string"
        }
      }
    },
    "BlobInfo": {
      "required": [
        "size",
        "url"
      ],
      "type": "object",
      "properties": {
        "size": {
          "type": "number"
        },
        "url": {
          "type": "string"
        }
      }
    },
    "PackageHashToBlobInfoMap": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/BlobInfo"
      }
    },
    "CodePushReleaseInfo": {
      "properties": {
        "target_binary_range": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "is_disabled": {
          "type": "boolean"
        },
        "is_mandatory": {
          "type": "boolean"
        },
        "rollout": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      }
    },
    "CodePushRelease": {
      "allOf": [
        {
          "$ref": "#/definitions/CodePushReleaseInfo"
        },
        {
          "properties": {
            "label": {
              "type": "string"
            },
            "package_hash": {
              "type": "string"
            },
            "blob_url": {
              "type": "string"
            },
            "diff_package_map": {
              "$ref": "#/definitions/PackageHashToBlobInfoMap"
            },
            "original_deployment": {
              "type": "string",
              "description": "Set on 'Promote'"
            },
            "original_label": {
              "type": "string",
              "description": "Set on 'Promote' and 'Rollback'"
            },
            "released_by": {
              "type": "string"
            },
            "release_method": {
              "type": "string",
              "enum": [
                "Upload",
                "Promote",
                "Rollback"
              ],
              "description": "The release method is unknown if unspecified"
            },
            "size": {
              "type": "number"
            },
            "upload_time": {
              "type": "integer"
            }
          }
        }
      ]
    },
    "CodePushReleaseModification": {
      "allOf": [
        {
          "$ref": "#/definitions/CodePushReleaseInfo"
        }
      ]
    },
    "CodePushReleasePromote": {
      "allOf": [
        {
          "$ref": "#/definitions/CodePushReleaseInfo"
        },
        {
          "properties": {
            "label": {
              "type": "string"
            }
          }
        }
      ]
    },
    "CodePushReleaseMetric": {
      "required": [
        "label",
        "active"
      ],
      "properties": {
        "label": {
          "type": "string"
        },
        "active": {
          "type": "integer"
        },
        "downloaded": {
          "type": "integer"
        },
        "failed": {
          "type": "integer"
        },
        "installed": {
          "type": "integer"
        }
      }
    },
    "CodePushStatusMetricMetadata": {
      "required": [
        "deployment_key"
      ],
      "properties": {
        "deployment_key": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "app_version": {
          "type": "string"
        },
        "previous_deployment_key": {
          "type": "string"
        },
        "previous_label_or_app_version": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "client_unique_id": {
          "type": "string"
        }
      }
    },
    "UpdateCheckResponse": {
      "required": [
        "is_available"
      ],
      "allOf": [
        {
          "$ref": "#/definitions/CodePushReleaseInfo"
        },
        {
          "properties": {
            "download_url": {
              "type": "string"
            },
            "is_available": {
              "type": "boolean"
            },
            "package_size": {
              "type": "number"
            },
            "should_run_binary_version": {
              "type": "boolean"
            },
            "update_app_version": {
              "type": "boolean"
            },
            "package_hash": {
              "type": "string"
            },
            "label": {
              "type": "string"
            }
          }
        }
      ]
    },
    "AcquisitionStatusSuccessResponse": {
      "properties": {
        "code": {
          "description": "The code indicating the status",
          "type": "string"
        },
        "message": {
          "description": "The message indicating the status",
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ]
    },
    "GDPRPurgeVerifyRequest": {
      "properties": {
        "id": {
          "description": "deployment id",
          "type": "string"
        },
        "key": {
          "description": "deployment key",
          "type": "string"
        }
      },
      "required": [
        "id",
        "key"
      ]
    },
    "GDPRPurgeVerifyResponse": {
      "properties": {
        "success": {
          "description": "indicate whether GDPR purge operation succeeds or not",
          "type": "boolean"
        }
      },
      "required": [
        "success"
      ]
    },
    "AlertOperationResult": {
      "description": "Generic result for any alerting API operation",
      "type": "object",
      "properties": {
        "request_id": {
          "description": "Unique request identifier for tracking",
          "type": "string"
        }
      },
      "required": [
        "request_id"
      ]
    },
    "AlertWebhook": {
      "description": "Alerting webhook",
      "type": "object",
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the webhook",
          "type": "string"
        },
        "name": {
          "description": "display name of the webhook",
          "type": "string",
          "maxLength": 512
        },
        "url": {
          "description": "target url of the webhook",
          "type": "string"
        },
        "enabled": {
          "description": "Allows eanble/disable webhook",
          "type": "boolean"
        },
        "event_types": {
          "description": "Event types enabled for webhook",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertingEventTypes"
          }
        }
      },
      "required": [
        "name",
        "url",
        "event_types"
      ]
    },
    "AlertingEventTypes": {
      "description": "Alerting EventTypes enum",
      "type": "string",
      "enum": [
        "newCrashGroupCreated",
        "newAppReleased"
      ]
    },
    "AlertWebhookListResult": {
      "description": "List of alerting webhooks wrapped as operation result",
      "properties": {
        "values": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertWebhook"
          }
        }
      },
      "required": [
        "values"
      ]
    },
    "AlertWebhookPingResult": {
      "description": "Alerting webhook ping operation result",
      "allOf": [
        {
          "$ref": "#/definitions/AlertOperationResult"
        },
        {
          "properties": {
            "response_status_code": {
              "description": "HTTP status code returned in response from calling webhook",
              "type": "integer"
            },
            "response_reason": {
              "description": "Reason returned in response from calling webhook",
              "type": "string"
            }
          },
          "required": [
            "response_status_code"
          ]
        }
      ]
    },
    "AlertEmailSettings": {
      "description": "Alerting Email Settings",
      "type": "object",
      "properties": {
        "settings": {
          "description": "The settings the user has for the app",
          "type": "array",
          "items": {
            "$ref": "#/definitions/EventSetting"
          }
        }
      },
      "required": [
        "settings"
      ]
    },
    "AlertUserEmailSettingsResult": {
      "description": "Alerting Default Email Settings of the user",
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/AlertOperationResult"
        },
        {
          "properties": {
            "eTag": {
              "description": "The ETag of the entity",
              "type": "string"
            },
            "enabled": {
              "description": "Allows to forcefully disable emails on app or user level",
              "type": "boolean"
            },
            "userId": {
              "description": "The unique id (UUID) of the user",
              "type": "string"
            },
            "settings": {
              "description": "The settings the user has for the app",
              "type": "array",
              "items": {
                "$ref": "#/definitions/EventSetting"
              }
            }
          },
          "required": [
            "enabled",
            "settings"
          ]
        }
      ]
    },
    "AlertUserAppEmailSettingsResult": {
      "description": "Alerting Email Settings of the user for a particular app",
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/AlertUserEmailSettingsResult"
        },
        {
          "properties": {
            "request_id": {
              "description": "Unique request",
              "type": "string"
            },
            "appId": {
              "description": "Application ID",
              "type": "string"
            },
            "user_enabled": {
              "description": "A flag indicating if settings are enabled at user/global level",
              "type": "boolean"
            }
          }
        }
      ],
      "required": [
        "user_enabled"
      ]
    },
    "AlertingBugtrackerSettings": {
      "description": "Bugtracker specific settings",
      "type": "object",
      "discriminator": "type",
      "properties": {
        "callback_url": {
          "type": "string"
        },
        "owner_name": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "type of bugtracker",
          "enum": [
            "github",
            "vsts",
            "jira"
          ]
        }
      },
      "required": [
        "type",
        "owner_name"
      ]
    },
    "AlertingVstsBugtrackerSettings": {
      "type": "object",
      "description": "VSTS bugtracker specific settings",
      "x-ms-discriminator-value": "vsts",
      "allOf": [
        {
          "$ref": "#/definitions/AlertingBugtrackerSettings"
        }
      ],
      "properties": {
        "vsts_project_id": {
          "type": "string"
        },
        "vsts_project_uri": {
          "type": "string"
        },
        "vsts_project_name": {
          "type": "string"
        },
        "vsts_account_name": {
          "type": "string"
        },
        "vsts_area_path": {
          "type": "string"
        },
        "vsts_default_payload": {
          "type": "object"
        }
      },
      "required": [
        "vsts_project_id",
        "vsts_project_uri"
      ]
    },
    "AlertingGithubBugtrackerSettings": {
      "type": "object",
      "description": "Github bugtracker specific settings",
      "x-ms-discriminator-value": "github",
      "allOf": [
        {
          "$ref": "#/definitions/AlertingBugtrackerSettings"
        }
      ],
      "properties": {
        "github_repo_id": {
          "type": "integer"
        },
        "github_repo_name": {
          "type": "string"
        },
        "github_label": {
          "type": "string"
        }
      },
      "required": [
        "github_repo_id",
        "github_repo_name"
      ]
    },
    "AlertingJiraBugtrackerSettings": {
      "type": "object",
      "description": "Jira bugtracker specific settings",
      "x-ms-discriminator-value": "jira",
      "allOf": [
        {
          "$ref": "#/definitions/AlertingBugtrackerSettings"
        }
      ],
      "properties": {
        "jira_project_id": {
          "type": "integer"
        },
        "jira_project_name": {
          "type": "string"
        }
      },
      "required": [
        "jira_project_id",
        "jira_project_name"
      ]
    },
    "AlertingBugtracker": {
      "description": "Alerting bugtracker resource",
      "properties": {
        "type": {
          "type": "string",
          "description": "type of bugtracker",
          "enum": [
            "github",
            "vsts",
            "jira"
          ]
        },
        "state": {
          "type": "string",
          "description": "bugtracker state",
          "enum": [
            "enabled",
            "disabled",
            "unauthorized"
          ]
        },
        "token_id": {
          "description": "ID of OAuth token",
          "type": "string"
        },
        "event_types": {
          "description": "Event types enabled for bugtracker",
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertingEventTypes"
          }
        },
        "crash_count_threshold": {
          "description": "Threshold for the number of crashes at which to create a bug",
          "type": "integer"
        },
        "settings": {
          "$ref": "#/definitions/AlertingBugtrackerSettings"
        }
      }
    },
    "BugTrackerTokenId": {
      "description": "Contains the token ID for a bug tracker",
      "type": "object",
      "properties": {
        "token_id": {
          "type": "string"
        }
      }
    },
    "AlertBugTrackerReposResult": {
      "description": "List of bug tracker repositories",
      "type": "object",
      "properties": {
        "repo_type": {
          "type": "string",
          "enum": [
            "github",
            "vsts",
            "jira"
          ]
        },
        "repositories": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AlertBugTrackerRepo"
          }
        }
      },
      "required": [
        "repositories"
      ]
    },
    "AlertBugTrackerRepo": {
      "description": "Repostiory object",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "private": {
          "type": "boolean"
        },
        "owner": {
          "$ref": "#/definitions/AlertBugTrackerRepoOwner"
        }
      },
      "required": [
        "name",
        "url",
        "id"
      ]
    },
    "AlertBugTrackerRepoOwner": {
      "description": "Repository owner object",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "login": {
          "type": "string"
        }
      }
    },
    "AlertCrashGroupStateChange": {
      "description": "AlertCrashGroup patching parameter",
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "Open",
            "Closed",
            "Ignored"
          ]
        }
      }
    },
    "AlertingAccessTokenResponse": {
      "description": "Access token details",
      "type": "object",
      "properties": {
        "access_token_id": {
          "description": "ID of the access token",
          "type": "string"
        },
        "external_provider_name": {
          "description": "External provider name",
          "type": "string",
          "enum": [
            "github",
            "vsts",
            "jira"
          ]
        },
        "external_user_email": {
          "description": "The email of external user that used to authenticate aginst the external oauth provider",
          "type": "string"
        },
        "external_account_name": {
          "description": "The account name of external user that used to authenticate against the external oauth provider or basic auth",
          "type": "string"
        }
      },
      "required": [
        "access_token_id",
        "external_provider_name",
        "external_user_email",
        "external_account_name"
      ]
    },
    "EventSetting": {
      "description": "Event Setting",
      "type": "object",
      "properties": {
        "event_type": {
          "description": "Event Name",
          "type": "string",
          "enum": [
            "crash_newCrashGroupCreated"
          ]
        },
        "value": {
          "description": "Frequency of event",
          "type": "string",
          "enum": [
            "Disabled",
            "Individual",
            "Daily",
            "DailyAndIndividual",
            "Default"
          ]
        },
        "default_value": {
          "description": "Default frequency of event",
          "type": "string",
          "enum": [
            "Disabled",
            "Individual",
            "Daily",
            "DailyAndIndividual"
          ]
        }
      },
      "required": [
        "event_type",
        "value"
      ]
    },
    "AlertingEvent": {
      "description": "Alerting event",
      "type": "object",
      "properties": {
        "event_timestamp": {
          "description": "ISO 8601 date time when event was generated",
          "type": "string"
        },
        "event_id": {
          "description": "A unique identifier for this event instance. Useful for deduplication",
          "type": "string"
        },
        "properties": {
          "description": "Obsolete. Use emailProperties.",
          "type": "object"
        }
      },
      "required": [
        "event_id",
        "event_timestamp"
      ]
    },
    "NewCrashGroupAlertingEvent": {
      "description": "New crash group alerting event",
      "allOf": [
        {
          "$ref": "#/definitions/AlertingEvent"
        },
        {
          "type": "object",
          "properties": {
            "crash_group_properties": {
              "description": "Properties of new crash group",
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "app_display_name": {
                  "type": "string"
                },
                "app_platform": {
                  "type": "string"
                },
                "app_version": {
                  "type": "string"
                },
                "stack_trace": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "id",
                "name",
                "reason",
                "url",
                "app_display_name",
                "app_platform",
                "app_version",
                "stack_trace"
              ]
            }
          }
        }
      ]
    },
    "NewAppReleaseAlertingEvent": {
      "description": "New app release alerting event",
      "allOf": [
        {
          "$ref": "#/definitions/AlertingEvent"
        },
        {
          "properties": {
            "user_ids": {
              "description": "List of users who need to receive an email notification. If this is not null, then only sending emails will be triggered even if the event requires calling webhooks or doing other actions.",
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "disable_webhook": {
              "description": "indicate whether notify via webhook or not",
              "type": "boolean"
            },
            "app_release_properties": {
              "description": "Properties of new application release",
              "type": "object",
              "properties": {
                "app_name": {
                  "type": "string"
                },
                "app_display_name": {
                  "type": "string"
                },
                "release_id": {
                  "type": "string"
                },
                "platform": {
                  "type": "string"
                },
                "uploaded_at": {
                  "type": "string",
                  "description": "Date and time in ISO 8601 format"
                },
                "fingerprint": {
                  "type": "string"
                },
                "release_notes": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                },
                "short_version": {
                  "type": "string"
                },
                "min_os": {
                  "type": "string"
                },
                "mandatory_update": {
                  "type": "boolean"
                },
                "size": {
                  "type": "integer"
                },
                "provisioning_profile_name": {
                  "type": "string"
                },
                "provisioning_profile_type": {
                  "type": "string"
                },
                "bundle_identifier": {
                  "type": "string"
                },
                "install_link": {
                  "type": "string"
                },
                "icon_link": {
                  "type": "string"
                },
                "distribution_group_id": {
                  "type": "string"
                },
                "installable": {
                  "type": "boolean"
                }
              },
              "required": [
                "app_name",
                "app_display_name",
                "release_id",
                "platform",
                "uploaded_at",
                "version",
                "short_version",
                "size",
                "bundle_identifier",
                "install_link"
              ]
            }
          }
        }
      ]
    },
    "BugTrackerIssuesResult": {
      "description": "Returns a list of all issues associated with a repo",
      "properties": {
        "issues": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/BugTrackerIssueResult"
          }
        }
      }
    },
    "BugTrackerIssueResult": {
      "description": "Object returned in response to getting a bug tracker issue related to a crash group id",
      "properties": {
        "id": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "bug_tracker_type": {
          "type": "string",
          "enum": [
            "github",
            "vsts",
            "jira"
          ]
        },
        "repo_name": {
          "type": "string"
        },
        "mobile_center_id": {
          "type": "string"
        },
        "event_type": {
          "type": "string"
        }
      }
    },
    "BugTrackerStateResult": {
      "description": "Object returned in response to getting or updating the state of a bugtracker",
      "properties": {
        "state": {
          "type": "string",
          "description": "bugtracker state",
          "enum": [
            "enabled",
            "disabled",
            "unauthorized"
          ]
        }
      }
    },
    "EventResponseResult": {
      "description": "Object returned in response to accepting an event occurance",
      "allOf": [
        {
          "$ref": "#/definitions/AlertOperationResult"
        }
      ]
    },
    "AlertingError": {
      "description": "Alerting service error",
      "allOf": [
        {
          "$ref": "#/definitions/AlertOperationResult"
        },
        {
          "properties": {
            "code": {
              "description": "The status code return by the API. It can be 400 or 404 or 409 or 500.",
              "type": "integer",
              "enum": [
                400,
                404,
                409,
                500
              ]
            },
            "message": {
              "description": "The reason for the request failed",
              "type": "string"
            }
          },
          "required": [
            "code"
          ]
        }
      ]
    },
    "AggregatedBillingInformation": {
      "description": "Aggregated Billing Information for a user or an organization",
      "type": "object",
      "properties": {
        "version": {
          "description": "Version of the Billing Information schema",
          "type": "string"
        },
        "timestamp": {
          "description": "The ISO 8601 datetime of last modification",
          "type": "string",
          "format": "dateTime"
        },
        "id": {
          "description": "ID of the user or organization",
          "type": "string"
        },
        "billingPlans": {
          "$ref": "#/definitions/BillingInformationPlans"
        },
        "usage": {
          "$ref": "#/definitions/BillingResourceUsage"
        },
        "azureSubscriptionId": {
          "description": "Unique identifier for the Azure subscription used for billing",
          "type": "string"
        },
        "azureSubscriptionState": {
          "description": "State of the Azure subscription used for billing",
          "type": "string",
          "enum": [
            "Enabled",
            "Disabled",
            "NotSet"
          ]
        }
      }
    },
    "AttributesValues": {
      "description": "Collection of attribute values.",
      "type": "object",
      "additionalProperties": {
        "type": "object"
      }
    },
    "BillingError": {
      "description": "Error",
      "type": "object",
      "properties": {
        "error": {
          "type": "object",
          "properties": {
            "code": {
              "description": "The status code return by the API. It can be 400 or 403 or 500.",
              "type": "integer",
              "enum": [
                400,
                403,
                500
              ]
            },
            "message": {
              "description": "The reason for the request failed",
              "type": "string"
            }
          }
        }
      }
    },
    "BillingInformationPlans": {
      "description": "Billing Plans section in the Billing Information",
      "type": "object",
      "properties": {
        "buildService": {
          "$ref": "#/definitions/ServiceBillingPlans"
        },
        "testService": {
          "$ref": "#/definitions/ServiceBillingPlans"
        }
      }
    },
    "BillingInformationSearchResults": {
      "description": "The results of a Billing Information search",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "accountId": {
            "description": "The Account ID",
            "type": "string",
            "format": "string"
          },
          "accountName": {
            "description": "The Account Name",
            "type": "string",
            "format": "string"
          },
          "billingInternalAccountId": {
            "description": "The Billing Internal Account ID",
            "type": "string",
            "format": "string"
          },
          "buildPlan": {
            "description": "The ID of the Build Billing Plan",
            "type": "string",
            "format": "string"
          },
          "testPlan": {
            "description": "The ID of the Test Billing Plan",
            "type": "string",
            "format": "string"
          }
        }
      }
    },
    "BillingPeriod": {
      "description": "Billing plans for a given period",
      "properties": {
        "startTime": {
          "description": "Inclusive start of the period",
          "type": "string",
          "format": "dateTime"
        },
        "endTime": {
          "description": "Exclusive end of the period.",
          "type": "string",
          "format": "dateTime"
        },
        "byAccount": {
          "$ref": "#/definitions/BillingPlanSelection"
        }
      }
    },
    "BillingPlan": {
      "description": "Billing Plan",
      "type": "object",
      "properties": {
        "id": {
          "description": "The Billing Plan ID",
          "type": "string"
        },
        "version": {
          "description": "Version of the Billing Plan schema",
          "type": "string"
        },
        "price": {
          "description": "Price of the Billing Plan",
          "type": "number"
        },
        "paymentSource": {
          "description": "Service that receives payments for this billing plan.",
          "type": "string",
          "enum": [
            "None",
            "AppCenter",
            "GitHub",
            "Xtc"
          ]
        },
        "service": {
          "description": "Name of the service that the plan applies to.",
          "type": "string",
          "enum": [
            "Build",
            "Test"
          ]
        },
        "limits": {
          "$ref": "#/definitions/MetricsValues"
        },
        "attributes": {
          "$ref": "#/definitions/AttributesValues"
        },
        "parentId": {
          "type": "string"
        }
      }
    },
    "BillingPlansChangeTypeResponse": {
      "description": "Responses for requests that detect billing plans change type",
      "properties": {
        "result": {
          "type": "string",
          "enum": [
            "NoChange",
            "Downgrade",
            "Upgrade"
          ]
        }
      }
    },
    "BillingPlanSelection": {
      "description": "Selection of a billing plan",
      "properties": {
        "count": {
          "description": "Number of instances of the billing plan.",
          "type": "integer"
        },
        "plan": {
          "$ref": "#/definitions/BillingPlan"
        }
      }
    },
    "BillingPlansSelection": {
      "description": "Selection of a billing plan for one or more services",
      "properties": {
        "buildService": {
          "$ref": "#/definitions/BillingPlanSelection"
        },
        "testService": {
          "$ref": "#/definitions/BillingPlanSelection"
        }
      }
    },
    "BillingResourceUsage": {
      "description": "Usage section in the Billing Information",
      "type": "object",
      "properties": {
        "buildService": {
          "$ref": "#/definitions/ServiceResourceUsage"
        },
        "testService": {
          "$ref": "#/definitions/ServiceResourceUsage"
        }
      }
    },
    "GdprVerificationResult": {
      "description": "GDPR tests verification result",
      "type": "object",
      "properties": {
        "status": {
          "description": "Verification status. True means that the verification was successfull.",
          "type": "boolean"
        },
        "message": {
          "description": "Optional error message if the verification failed.",
          "type": "string"
        }
      }
    },
    "GitHubAccount": {
      "description": "GitHub account information",
      "type": "object",
      "properties": {
        "id": {
          "description": "Id of GitHub account",
          "type": "integer"
        },
        "accountType": {
          "description": "Type of GitHub account",
          "enum": [
            "User",
            "Organization"
          ],
          "type": "string"
        }
      }
    },
    "GitHubMarketplacePlan": {
      "description": "GitHub Marketplace plan",
      "type": "object",
      "properties": {
        "id": {
          "description": "Id of the GitHub plan",
          "type": "integer"
        }
      }
    },
    "GitHubMarketplacePurchase": {
      "description": "GitHub Marketplace purchase",
      "type": "object",
      "properties": {
        "account": {
          "$ref": "#/definitions/GitHubAccount"
        },
        "plan": {
          "$ref": "#/definitions/GitHubMarketplacePlan"
        }
      }
    },
    "MetricsValues": {
      "description": "A collection of named numeric values",
      "type": "object",
      "additionalProperties": {
        "type": "number"
      }
    },
    "MetricsValuesByApp": {
      "description": "A collection of  named numeric values grouped by app",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/definitions/MetricsValues"
      }
    },
    "ServiceBillingPlans": {
      "description": "Billing Plans for a single service",
      "type": "object",
      "properties": {
        "canSelectTrialPlan": {
          "description": "Can customer select trial plan for that service (if it exists)?",
          "type": "boolean"
        },
        "lastTrialPlanExpirationTime": {
          "description": "Expiration time of the last selected trial plan. Will be null if trial plan was not used.",
          "type": "string",
          "format": "dateTime"
        },
        "currentBillingPeriod": {
          "$ref": "#/definitions/BillingPeriod"
        }
      }
    },
    "ServiceResourceUsage": {
      "description": "Resource usage for a single Mobile Center service",
      "type": "object",
      "properties": {
        "currentUsagePeriod": {
          "$ref": "#/definitions/UsagePeriod"
        }
      }
    },
    "UsagePeriod": {
      "description": "Usage for a single period",
      "type": "object",
      "properties": {
        "startTime": {
          "description": "Inclusive start time of the usage period",
          "type": "string",
          "format": "dateTime"
        },
        "endTime": {
          "description": "Exclusive end time of the usage period.",
          "type": "string",
          "format": "dateTime"
        },
        "byAccount": {
          "$ref": "#/definitions/MetricsValues"
        },
        "byApp": {
          "$ref": "#/definitions/MetricsValuesByApp"
        }
      }
    },
    "UsageRecordStatus": {
      "description": "Status of the usage record creation",
      "type": "object",
      "properties": {
        "expectedLatestBuildExists": {
          "description": "Is the age of the most recent Build service usage record within expected limits",
          "type": "boolean"
        },
        "expectedLatestTestExists": {
          "description": "Is the age of the most recent Test service usage record within expected limits",
          "type": "boolean"
        },
        "latestBuildUsageRecordTime": {
          "description": "The time of the most recent Build service usage record",
          "type": "string",
          "format": "dateTime"
        },
        "latestTestUsageRecordTime": {
          "description": "The time of the most recent Test service usage record",
          "type": "string",
          "format": "dateTime"
        }
      }
    },
    "VersionedBillingPlan": {
      "description": "Billing Plan with a version",
      "type": "object",
      "properties": {
        "document": {
          "$ref": "#/definitions/BillingPlan"
        },
        "etag": {
          "description": "The version of the object",
          "type": "string"
        }
      }
    },
    "MessageEnvelope": {
      "description": "Envelope for messages sent to actors",
      "type": "object",
      "properties": {
        "messageId": {
          "description": "Unique id of the message",
          "type": "string"
        },
        "messageType": {
          "description": "Type of the message",
          "type": "string"
        },
        "message": {
          "description": "Body of the message",
          "type": "object"
        }
      }
    },
    "DataSubjectRightEmailRequest": {
      "type": "object",
      "properties": {
        "email": {
          "description": "Email used for cancel delete with x-authz-bypass headers",
          "type": "string"
        }
      },
      "required": [
        "email"
      ]
    },
    "DataSubjectRightResponse": {
      "type": "object",
      "properties": {
        "token": {
          "description": "Unique request identifier",
          "type": "string",
          "format": "uuid"
        },
        "createdAt": {
          "description": "ISO 8601 format timestamp of when request was created.",
          "type": "string",
          "format": "date-time"
        }
      },
      "required": [
        "token",
        "createdAt"
      ]
    },
    "DataSubjectRightStatusResponse": {
      "type": "object",
      "properties": {
        "sasUrl": {
          "description": "Azure Storage shared access signature (SAS) URL for exported user data.",
          "type": "string"
        },
        "sasUrlExpired": {
          "description": "Whether Azure Storage shared access signature (SAS) URL has expired or not.",
          "type": "boolean"
        },
        "status": {
          "description": "Status of data subject right request",
          "type": "string",
          "enum": [
            "None",
            "Created",
            "Queued",
            "InProgress",
            "Completed",
            "Failed"
          ]
        },
        "message": {
          "description": "explanation message of the status",
          "type": "string"
        }
      },
      "required": [
        "status",
        "message"
      ]
    },
    "ClientIdResponse": {
      "description": "This response contains the Azure AD B2C client ID for an application.",
      "type": "object",
      "properties": {
        "clientId": {
          "format": "uuid",
          "type": "string"
        }
      }
    },
    "AuthTenantsResponse": {
      "type": "object",
      "properties": {
        "value": {
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/AuthTenant"
          }
        }
      }
    },
    "AuthTenant": {
      "required": [
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "format": "uuid",
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "ApplicationsResponse": {
      "type": "object",
      "properties": {
        "value": {
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/ApplicationResponse"
          }
        }
      }
    },
    "ApplicationResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "createdAt": {
          "format": "date-time",
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "ScopesResponse": {
      "type": "object",
      "properties": {
        "value": {
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/ScopeResponse"
          }
        }
      }
    },
    "ScopeResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "appName": {
          "type": "string"
        },
        "scope": {
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      }
    },
    "AuthApplicationResponse": {
      "required": [
        "id",
        "tenantId",
        "tenantName",
        "policyId",
        "scopeId",
        "scopeUrl"
      ],
      "type": "object",
      "properties": {
        "id": {
          "format": "uuid",
          "type": "string"
        },
        "tenantId": {
          "format": "uuid",
          "type": "string"
        },
        "tenantName": {
          "type": "string"
        },
        "policyId": {
          "type": "string"
        },
        "scopeId": {
          "format": "uuid",
          "type": "string"
        },
        "scopeUrl": {
          "type": "string"
        },
        "isSdkConfigured": {
          "type": "boolean"
        }
      }
    },
    "AuthApplicationPatchRequest": {
      "required": [
        "policyId",
        "scopeId",
        "scopeUrl"
      ],
      "type": "object",
      "properties": {
        "policyId": {
          "type": "string"
        },
        "scopeId": {
          "format": "uuid",
          "type": "string"
        },
        "scopeUrl": {
          "type": "string"
        }
      }
    },
    "ExistingAuthApplicationPostRequest": {
      "required": [
        "tenantId",
        "tenantName",
        "id",
        "policyId",
        "scopeId",
        "scopeUrl"
      ],
      "type": "object",
      "properties": {
        "tenantId": {
          "format": "uuid",
          "type": "string"
        },
        "tenantName": {
          "type": "string"
        },
        "id": {
          "format": "uuid",
          "type": "string"
        },
        "policyId": {
          "type": "string"
        },
        "scopeId": {
          "format": "uuid",
          "type": "string"
        },
        "scopeUrl": {
          "type": "string"
        }
      }
    },
    "TrustFrameworkPoliciesResponse": {
      "type": "object",
      "properties": {
        "value": {
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/TrustFrameworkPolicyResponse"
          }
        }
      }
    },
    "TrustFrameworkPolicyResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      }
    },
    "LocationResponse": {
      "description": "This response contains the location of the resource URI for 201 or 202 responses.",
      "type": "object",
      "properties": {
        "location": {
          "type": "string"
        }
      }
    },
    "InnerError": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "innererror": {
          "$ref": "#/definitions/InnerError"
        }
      }
    },
    "EstimatedPricingResponse": {
      "description": "This response contains an estimated price-per-RU denominated in a given currency.",
      "type": "object",
      "properties": {
        "pricePerHour": {
          "format": "double",
          "type": "number"
        },
        "currency": {
          "enum": [
            "USD",
            "EUR",
            "GBP",
            "AUD",
            "INR",
            "CAD",
            "ARS",
            "BRL",
            "DKK",
            "HKD",
            "IDR",
            "JPY",
            "KRW",
            "MYR",
            "MXN",
            "NZD",
            "NOK",
            "RUB",
            "SAR",
            "ZAR",
            "SEK",
            "CHF",
            "TWD",
            "TRY"
          ],
          "type": "string"
        }
      }
    },
    "DataInstancesResponse": {
      "type": "object",
      "properties": {
        "value": {
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/DataInstance"
          }
        }
      }
    },
    "DataInstance": {
      "required": [
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "InstanceDatabasesResponse": {
      "type": "object",
      "properties": {
        "value": {
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/InstanceDatabase"
          }
        }
      }
    },
    "InstanceDatabase": {
      "required": [
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "DatabaseCollectionsResponse": {
      "type": "object",
      "properties": {
        "value": {
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/DatabaseCollection"
          }
        }
      }
    },
    "DatabaseCollection": {
      "required": [
        "id",
        "name"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "UsersResponse": {
      "required": [
        "value"
      ],
      "type": "object",
      "properties": {
        "value": {
          "uniqueItems": false,
          "type": "array",
          "items": {
            "$ref": "#/definitions/UserResponse"
          }
        }
      }
    },
    "UserResponse": {
      "required": [
        "accountId",
        "displayName"
      ],
      "type": "object",
      "properties": {
        "accountId": {
          "format": "uuid",
          "type": "string"
        },
        "mail": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        }
      }
    },
    "DataProvisioningParameters": {
      "type": "object",
      "properties": {
        "subscriptionId": {
          "type": "string"
        },
        "databaseConnectionString": {
          "type": "string"
        },
        "resourceRegion": {
          "enum": [
            "East Asia",
            "Southeast Asia",
            "Australia Central",
            "Australia Central 2",
            "Australia East",
            "Australia Southeast",
            "Brazil South",
            "Canada Central",
            "Canada East",
            "Central India",
            "South India",
            "West India",
            "North Europe",
            "West Europe",
            "France Central",
            "France South",
            "Germany Central",
            "Germany Northeast",
            "Japan East",
            "Japan West",
            "Korea Central",
            "Korea South",
            "South Africa North",
            "South Africa West",
            "UK South",
            "UK West",
            "Central US",
            "East US",
            "East US 2",
            "US Gov Arizona",
            "US Gov Texas",
            "North Central US",
            "South Central US",
            "West US",
            "West US 2",
            "West Central US"
          ],
          "type": "string"
        },
        "database": {
          "type": "string"
        },
        "collection": {
          "type": "string"
        },
        "requestUnits": {
          "format": "int64",
          "maximum": 2147483647,
          "minimum": 400,
          "type": "integer"
        },
        "accountName": {
          "type": "string"
        }
      }
    },
    "ProvisionStatusResponse": {
      "required": [
        "status"
      ],
      "type": "object",
      "properties": {
        "status": {
          "enum": [
            "Empty",
            "Accepted",
            "Creating",
            "Connected",
            "Invalid"
          ],
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    }
  },
  "parameters": {
    "app_name": {
      "name": "app_name",
      "type": "string",
      "in": "path",
      "description": "The name of the application",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "owner_name": {
      "name": "owner_name",
      "type": "string",
      "in": "path",
      "description": "The name of the owner",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "TopParameter": {
      "name": "$top",
      "in": "query",
      "description": "The maximum number of results to return. (0 will fetch all results)",
      "required": false,
      "default": 30,
      "minimum": 0,
      "maximum": 2000,
      "type": "integer",
      "format": "int64",
      "x-ms-parameter-location": "method"
    },
    "SkipTokenParameter": {
      "name": "$skiptoken",
      "in": "query",
      "description": "The value identifies a starting point in the collection of entities. This parameter along with limit is used to perform pagination.",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "InlineCountParameter": {
      "name": "$inlinecount",
      "in": "query",
      "description": "Controls whether or not to include a count of all the items across all pages.",
      "required": false,
      "default": "none",
      "type": "string",
      "enum": [
        "allpages",
        "none"
      ],
      "x-ms-parameter-location": "method"
    },
    "OrderByParameter": {
      "name": "$orderby",
      "in": "query",
      "description": "controls the sorting order and sorting based on which column",
      "required": false,
      "default": "count desc",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "account_id": {
      "name": "account_id",
      "type": "string",
      "format": "uuid",
      "in": "path",
      "description": "The unique ID (UUID) of the account",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "app": {
      "name": "app",
      "in": "body",
      "description": "The data for the app",
      "required": true,
      "schema": {
        "$ref": "#/definitions/AppRequest"
      },
      "x-ms-parameter-location": "method"
    },
    "app_avatar": {
      "name": "avatar",
      "required": false,
      "in": "formData",
      "type": "file",
      "description": "The image for an app avatar to upload.",
      "x-ms-parameter-location": "method"
    },
    "app_id": {
      "name": "app_id",
      "type": "string",
      "format": "uuid",
      "in": "path",
      "description": "The unique ID (UUID) of the app",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "apps_limit": {
      "name": "apps_limit",
      "type": "number",
      "in": "query",
      "description": "The max number of apps to include in the response",
      "required": false,
      "x-ms-parameter-location": "method"
    },
    "azure_subscription_id": {
      "name": "azure_subscription_id",
      "type": "string",
      "format": "uuid",
      "in": "path",
      "description": "The unique ID (UUID) of the azure subscription",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "email": {
      "name": "email",
      "type": "string",
      "in": "path",
      "description": "The email address of the user to send the password reset mail to.",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "feature_name": {
      "name": "feature_name",
      "type": "string",
      "in": "path",
      "description": "The name of the feature.",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "include_soft_deleted": {
      "name": "include_soft_deleted",
      "type": "boolean",
      "in": "query",
      "description": "Check if the return values should include soft-deleted items.",
      "required": false,
      "x-ms-parameter-location": "method"
    },
    "invitation_id": {
      "name": "invitation_id",
      "type": "string",
      "format": "uuid",
      "in": "path",
      "description": "The unique ID of the invitation.",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "invitation_token": {
      "name": "invitation_token",
      "type": "string",
      "in": "path",
      "description": "The app invitation token that was sent to the user",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "organization_avatar": {
      "name": "avatar",
      "required": false,
      "in": "formData",
      "type": "file",
      "description": "The image for an Organization avatar to upload.",
      "x-ms-parameter-location": "method"
    },
    "organization_name": {
      "name": "org_name",
      "type": "string",
      "in": "path",
      "description": "The organization's name",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "org_id": {
      "name": "org_id",
      "type": "string",
      "format": "uuid",
      "in": "path",
      "description": "The unique ID (UUID) of the org",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "team_name": {
      "name": "team_name",
      "type": "string",
      "in": "path",
      "description": "The team's name",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "user_id": {
      "name": "user_id",
      "type": "string",
      "format": "uuid",
      "in": "path",
      "description": "The ID of the user",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "user_name": {
      "name": "user_name",
      "type": "string",
      "in": "path",
      "description": "The slug name of the user",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "users_limit": {
      "name": "users_limit",
      "type": "number",
      "in": "query",
      "description": "The max number of users to include in the response",
      "required": false,
      "x-ms-parameter-location": "method"
    },
    "distribution_group_name": {
      "name": "distribution_group_name",
      "type": "string",
      "in": "path",
      "description": "The name of the distribution group",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "distribution_group_for_patch": {
      "name": "distribution_group",
      "in": "body",
      "description": "The attributes to update for the distribution group",
      "required": true,
      "schema": {
        "$ref": "#/definitions/DistributionGroupPatchRequest"
      },
      "x-ms-parameter-location": "method"
    },
    "distribution_group": {
      "name": "distribution_group",
      "in": "body",
      "description": "The attributes to update for the distribution group",
      "required": true,
      "schema": {
        "$ref": "#/definitions/DistributionGroupRequest"
      },
      "x-ms-parameter-location": "method"
    },
    "exclude_pending_invitations": {
      "name": "exclude_pending_invitations",
      "type": "boolean",
      "in": "query",
      "description": "Whether to exclude pending invitations in the response",
      "required": false,
      "x-ms-parameter-location": "method"
    },
    "members": {
      "name": "members",
      "in": "body",
      "description": "The list of members to add",
      "required": true,
      "schema": {
        "$ref": "#/definitions/DistributionGroupUserRequest"
      },
      "x-ms-parameter-location": "method"
    },
    "aad_groups": {
      "name": "aad_groups",
      "in": "body",
      "description": "The aad group ids to add",
      "required": true,
      "schema": {
        "$ref": "#/definitions/DistributionGroupAADGroupRequest"
      },
      "x-ms-parameter-location": "method"
    },
    "groups": {
      "name": "groups",
      "in": "body",
      "description": "The list of aad group ids to delete",
      "required": true,
      "schema": {
        "$ref": "#/definitions/DistributionGroupAADGroupsDeleteRequest"
      },
      "x-ms-parameter-location": "method"
    },
    "build_id": {
      "name": "build_id",
      "in": "path",
      "description": "The build ID",
      "required": true,
      "type": "integer",
      "minimum": 0,
      "exclusiveMinimum": true,
      "x-ms-parameter-location": "method"
    },
    "branch": {
      "name": "branch",
      "in": "path",
      "description": "The branch name",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "sha": {
      "name": "sha",
      "in": "path",
      "description": "The SHA hash",
      "required": true,
      "type": "string",
      "pattern": "^[0-9a-f]{5,40}$",
      "x-ms-parameter-location": "method"
    },
    "form": {
      "name": "form",
      "in": "query",
      "description": "The selected form of the object",
      "required": false,
      "type": "string",
      "enum": [
        "lite",
        "full"
      ],
      "x-ms-parameter-location": "method"
    },
    "token": {
      "name": "token",
      "in": "query",
      "description": "An auth token",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "path_app_id": {
      "name": "app_id",
      "type": "string",
      "in": "path",
      "description": "The ID of the application",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "path_symbol_upload_id": {
      "name": "symbol_upload_id",
      "type": "string",
      "in": "path",
      "description": "The ID of the symbol upload",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "path_symbol_id": {
      "name": "symbol_id",
      "type": "string",
      "in": "path",
      "description": "The ID of the symbol (uuid of the symbol)",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "path_crash_group_id": {
      "name": "crash_group_id",
      "in": "path",
      "required": true,
      "description": "id of a specific group",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "path_crash_id": {
      "name": "crash_id",
      "in": "path",
      "required": true,
      "description": "id of a specific crash",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "path_attachment_id": {
      "name": "attachment_id",
      "in": "path",
      "required": true,
      "description": "attachment id",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "app_version": {
      "name": "app_version",
      "in": "query",
      "type": "string",
      "description": "version",
      "required": false,
      "x-ms-parameter-location": "method"
    },
    "date_from": {
      "name": "date_from",
      "in": "query",
      "type": "string",
      "format": "date-time",
      "description": "",
      "required": false,
      "x-ms-parameter-location": "method"
    },
    "date_to": {
      "name": "date_to",
      "in": "query",
      "type": "string",
      "format": "date-time",
      "description": "",
      "required": false,
      "x-ms-parameter-location": "method"
    },
    "last_occurrence_from": {
      "name": "last_occurrence_from",
      "in": "query",
      "type": "string",
      "format": "date-time",
      "description": "Earliest date when the last time a crash occured in a crash group",
      "required": false,
      "x-ms-parameter-location": "method"
    },
    "last_occurrence_to": {
      "name": "last_occurrence_to",
      "in": "query",
      "type": "string",
      "format": "date-time",
      "description": "Latest date when the last time a crash occured in a crash group",
      "required": false,
      "x-ms-parameter-location": "method"
    },
    "error_type": {
      "name": "error_type",
      "in": "query",
      "type": "string",
      "required": false,
      "enum": [
        "CrashingErrors",
        "HandledErrors"
      ],
      "x-ms-parameter-location": "method"
    },
    "group_type": {
      "name": "group_type",
      "in": "query",
      "type": "string",
      "required": false,
      "enum": [
        "GroupType1",
        "GroupType2"
      ],
      "x-ms-parameter-location": "method"
    },
    "group_status": {
      "name": "group_status",
      "in": "query",
      "type": "string",
      "required": false,
      "enum": [
        "open",
        "closed",
        "ignored"
      ],
      "x-ms-parameter-location": "method"
    },
    "group_orderby": {
      "name": "$orderby",
      "in": "query",
      "type": "string",
      "required": false,
      "description": "the OData-like $orderby argument",
      "allowEmptyValue": true,
      "default": "last_occurrence desc",
      "enum": [
        "last_occurrence asc",
        "last_occurrence desc",
        "count asc",
        "count desc",
        "display_id asc",
        "display_id desc",
        "impacted_users asc",
        "impacted_users desc"
      ],
      "x-ms-parameter-location": "method"
    },
    "include_report": {
      "name": "include_report",
      "in": "query",
      "type": "boolean",
      "default": false,
      "required": false,
      "description": "true if the crash should include the raw crash report. Default is false",
      "x-ms-parameter-location": "method"
    },
    "include_log": {
      "name": "include_log",
      "in": "query",
      "type": "boolean",
      "default": false,
      "required": false,
      "description": "true if the crash should include the custom log report. Default is false",
      "x-ms-parameter-location": "method"
    },
    "group_text_search": {
      "name": "group_text_search",
      "in": "query",
      "type": "string",
      "required": false,
      "description": "A freetext search that matches in crash, crash types, crash stack_traces and crash user",
      "x-ms-parameter-location": "method"
    },
    "grouping_only": {
      "name": "grouping_only",
      "in": "query",
      "type": "boolean",
      "default": false,
      "required": false,
      "description": "true if the stacktrace should be only the relevant thread / exception. Default is false",
      "x-ms-parameter-location": "method"
    },
    "continuation_token": {
      "name": "continuation_token",
      "in": "query",
      "type": "string",
      "required": false,
      "description": "Cassandra request continuation token. The token is used for pagination.",
      "x-ms-parameter-location": "method"
    },
    "is_ndk": {
      "name": "is_ndk",
      "in": "query",
      "type": "boolean",
      "default": false,
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "patch_log_id": {
      "name": "patch_log_id",
      "in": "query",
      "type": "boolean",
      "default": true,
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "patch_log_dates": {
      "name": "patch_log_dates",
      "in": "query",
      "type": "boolean",
      "default": true,
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "file_extension": {
      "name": "file_extension",
      "in": "query",
      "type": "string",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "repeat": {
      "name": "repeat",
      "in": "query",
      "type": "integer",
      "default": 1,
      "required": true,
      "minimum": 1,
      "maximum": 150,
      "x-ms-parameter-location": "method"
    },
    "v2_path_symbol_group_id": {
      "name": "symbol_group_id",
      "in": "path",
      "required": true,
      "description": "missing symbol crash group id",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "v2_query_top": {
      "name": "top",
      "in": "query",
      "required": true,
      "description": "top N elements",
      "type": "integer",
      "x-ms-parameter-location": "method"
    },
    "v2_query_filter": {
      "name": "filter",
      "in": "query",
      "required": false,
      "description": "query filter",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "InstallIdParameter": {
      "name": "install_id",
      "in": "path",
      "description": "The id of the device",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "AnalyticsDateParameter": {
      "name": "date",
      "in": "query",
      "description": "Date of data requested",
      "required": false,
      "type": "string",
      "format": "date-time",
      "x-ms-parameter-location": "method"
    },
    "AnalyticsStartParameter": {
      "name": "start",
      "in": "query",
      "description": "Start date time in data in ISO 8601 date time format",
      "required": true,
      "type": "string",
      "format": "date-time",
      "x-ms-parameter-location": "method"
    },
    "AnalyticsEndParameter": {
      "name": "end",
      "in": "query",
      "description": "Last date time in data in ISO 8601 date time format",
      "required": false,
      "type": "string",
      "format": "date-time",
      "x-ms-parameter-location": "method"
    },
    "LogTraceParameter": {
      "name": "log_trace",
      "in": "body",
      "required": true,
      "schema": {
        "$ref": "#/definitions/LogTraceDefinition"
      },
      "x-ms-parameter-location": "method"
    },
    "AudienceNameParameter": {
      "name": "audience_name",
      "in": "path",
      "description": "The name of the audience",
      "required": true,
      "type": "string",
      "maxLength": 64,
      "format": "string",
      "pattern": "[^/]+",
      "x-ms-parameter-location": "method"
    },
    "DevicePropertyNameParameter": {
      "name": "property_name",
      "in": "path",
      "description": "Device property",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "AnalyticsCrashIdParameter": {
      "name": "crash_id",
      "in": "path",
      "description": "The id of the a crash",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ContainsParameter": {
      "name": "contains",
      "in": "query",
      "description": "Contains string",
      "required": false,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "AudienceBodyParameter": {
      "name": "audience",
      "in": "body",
      "description": "Audience definition",
      "required": true,
      "schema": {
        "$ref": "#/definitions/AudienceDefinition"
      },
      "x-ms-parameter-location": "method"
    },
    "LiveAudienceQueryParameter": {
      "name": "query",
      "in": "body",
      "description": "Query definition",
      "required": true,
      "schema": {
        "$ref": "#/definitions/AudienceQueryDefinition"
      },
      "x-ms-parameter-location": "method"
    },
    "IncludeDisabledAudiencesParameter": {
      "name": "include_disabled",
      "in": "query",
      "description": "Include disabled audience definitions",
      "required": false,
      "type": "boolean",
      "x-ms-parameter-location": "method"
    },
    "StorageAccountNameParameter": {
      "name": "storageAccount",
      "in": "query",
      "description": "Storage account name",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "StorageAccountNameOptionalParameter": {
      "name": "storageAccount",
      "in": "query",
      "description": "Storage account name",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "QueueNameParameter": {
      "name": "queueName",
      "in": "query",
      "description": "Name of the queue",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "QueueTypeParameter": {
      "name": "queueType",
      "in": "query",
      "description": "Type of the queue",
      "required": true,
      "enum": [
        "analytics",
        "handledErrorParser",
        "handledErrorAggregation"
      ],
      "default": "analytics",
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "CounterIdParameter": {
      "name": "counterId",
      "in": "path",
      "description": "Counter Id",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "MigrationParameter": {
      "name": "migration",
      "in": "body",
      "description": "Migration parameters",
      "required": true,
      "x-ms-parameter-location": "method",
      "schema": {
        "type": "object",
        "properties": {
          "AppId": {
            "type": "string"
          },
          "FromDate": {
            "type": "string",
            "format": "date-time"
          },
          "ToDate": {
            "type": "string",
            "format": "date-time"
          },
          "WhatIf": {
            "type": "boolean"
          },
          "WaitForCompletion": {
            "type": "boolean"
          },
          "PauseService": {
            "type": "boolean"
          }
        },
        "required": [
          "AppId"
        ]
      }
    },
    "MigrationNameParameter": {
      "name": "name",
      "in": "path",
      "description": "Name",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "AppKeyForAdminParameter": {
      "name": "appId",
      "in": "query",
      "description": "The id of the application",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "DistributionKeyParameter": {
      "name": "distribution_id",
      "in": "path",
      "description": "the id of the distribution group",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "StartParameter": {
      "name": "start",
      "in": "query",
      "description": "Start date time in data in ISO 8601 date time format",
      "required": true,
      "type": "string",
      "format": "date-time",
      "x-ms-parameter-location": "method"
    },
    "EndParameter": {
      "name": "end",
      "in": "query",
      "description": "Last date time in data in ISO 8601 date time format",
      "required": false,
      "type": "string",
      "format": "date-time",
      "x-ms-parameter-location": "method"
    },
    "CrashGroupParameter": {
      "name": "crash_group_id",
      "in": "path",
      "description": "The id of the crash group",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "CrashGroupsParameter": {
      "name": "crash_groups",
      "in": "body",
      "required": true,
      "schema": {
        "$ref": "#/definitions/CrashGroupContainer"
      },
      "x-ms-parameter-location": "method"
    },
    "EventParameter": {
      "name": "event_name",
      "in": "path",
      "description": "The id of the event",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "EventPropertyParameter": {
      "name": "event_property_name",
      "in": "path",
      "description": "The id of the event property",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "IntervalParameter": {
      "name": "interval",
      "in": "query",
      "description": "Size of interval in ISO 8601 duration format. (PnYnMnDTnHnMnS|PnW|P<date>T<time>). The valid durations are 1 day (P1D), 1 week (P1W), and 30 days (P30D).",
      "required": true,
      "type": "string",
      "format": "Timespan",
      "x-ms-parameter-location": "method"
    },
    "VersionsParameter": {
      "name": "versions",
      "in": "query",
      "required": false,
      "type": "array",
      "items": {
        "type": "string"
      },
      "collectionFormat": "pipes",
      "x-ms-parameter-location": "method"
    },
    "VersionParameter": {
      "name": "version",
      "in": "query",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "EventNameParameter": {
      "name": "event_name",
      "in": "query",
      "description": "to select the specific events",
      "required": false,
      "type": "array",
      "items": {
        "type": "string"
      },
      "collectionFormat": "pipes",
      "x-ms-parameter-location": "method"
    },
    "SkipParameter": {
      "name": "$skip",
      "in": "query",
      "description": "The offset (starting at 0) of the first result to return. This parameter along with limit is used to perform pagination.",
      "required": false,
      "default": 0,
      "minimum": 0,
      "type": "integer",
      "format": "int64",
      "x-ms-parameter-location": "method"
    },
    "FilterParameter": {
      "name": "$filter",
      "in": "query",
      "description": "A filter as specified in https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md#97-filtering.",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "PropertyTopParameter": {
      "name": "$top",
      "in": "query",
      "description": "The number of property values to return",
      "required": false,
      "default": 5,
      "minimum": 1,
      "maximum": 10,
      "type": "integer",
      "format": "int64",
      "x-ms-parameter-location": "method"
    },
    "NotifyReleasesParameter": {
      "name": "releases",
      "in": "body",
      "description": "The releases to notify.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/NotifyReleasesContainer"
      },
      "x-ms-parameter-location": "method"
    },
    "DeleteReleasesParameter": {
      "name": "releases",
      "in": "body",
      "description": "The releases to delete.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/DeleteReleasesContainer"
      },
      "x-ms-parameter-location": "method"
    },
    "GetReleasesParameter": {
      "name": "releases",
      "in": "body",
      "description": "The releases to retrieve.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/GetReleasesContainer"
      },
      "x-ms-parameter-location": "method"
    },
    "FilterReleasesParameter": {
      "name": "releases",
      "in": "body",
      "description": "The releases to filter the data by.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/FilterReleasesContainer"
      },
      "x-ms-parameter-location": "method"
    },
    "FilterVersionsParameter": {
      "name": "versions",
      "in": "body",
      "description": "The versions to filter the data by.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/FilterVersionsContainer"
      },
      "x-ms-parameter-location": "method"
    },
    "LogFlowStartTimeParameter": {
      "name": "start",
      "in": "query",
      "description": "Start date time in data in ISO 8601 date time format. It must be within the current day in the UTC timezone. The default value is the start time of the current day in UTC timezone.",
      "required": false,
      "type": "string",
      "format": "date-time",
      "x-ms-parameter-location": "method"
    },
    "ErrorAttachmentParameter": {
      "name": "attachmentId",
      "in": "path",
      "description": "Error attachment id.",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorVersionsParameter": {
      "name": "versions",
      "in": "query",
      "required": false,
      "type": "array",
      "items": {
        "type": "string"
      },
      "collectionFormat": "pipes",
      "x-ms-parameter-location": "method"
    },
    "ErrorVersionParameterOptional": {
      "name": "version",
      "in": "query",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorStartParameter": {
      "name": "start",
      "in": "query",
      "description": "Start date time in data in ISO 8601 date time format",
      "required": true,
      "type": "string",
      "format": "date-time",
      "x-ms-parameter-location": "method"
    },
    "ErrorEndParameter": {
      "name": "end",
      "in": "query",
      "description": "Last date time in data in ISO 8601 date time format",
      "required": false,
      "type": "string",
      "format": "date-time",
      "x-ms-parameter-location": "method"
    },
    "ErrorTopParameter": {
      "name": "$top",
      "in": "query",
      "description": "The maximum number of results to return. (0 will fetch all results till the max number.)",
      "required": false,
      "default": 30,
      "minimum": 0,
      "maximum": 2000,
      "type": "integer",
      "format": "int64",
      "x-ms-parameter-location": "method"
    },
    "ErrorSearchTopParameter": {
      "name": "$top",
      "in": "query",
      "description": "The maximum number of results to return",
      "required": false,
      "default": 100,
      "minimum": 1,
      "maximum": 100,
      "type": "integer",
      "format": "int64",
      "x-ms-parameter-location": "method"
    },
    "FormatParameter": {
      "name": "format",
      "in": "query",
      "description": "the format of the crash log",
      "required": false,
      "type": "string",
      "enum": [
        "json",
        "txt"
      ],
      "x-ms-parameter-location": "method"
    },
    "ErrorSkipParameter": {
      "name": "$skip",
      "in": "query",
      "description": "The offset (starting at 0) of the first result to return. This parameter along with limit is used to perform pagination.",
      "required": false,
      "default": 0,
      "minimum": 0,
      "type": "integer",
      "format": "int64",
      "x-ms-parameter-location": "method"
    },
    "ErrorFilterParameter": {
      "name": "$filter",
      "in": "query",
      "description": "A filter as specified in https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md#97-filtering.",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorSearchFilterParameter": {
      "name": "filter",
      "in": "query",
      "description": "A filter as specified in OData notation",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorSearchQueryParameter": {
      "name": "q",
      "in": "query",
      "description": "A query string",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorInlineCountParameter": {
      "name": "$inlinecount",
      "in": "query",
      "description": "Controls whether or not to include a count of all the items across all pages.",
      "required": false,
      "default": "none",
      "type": "string",
      "enum": [
        "allpages",
        "none"
      ],
      "x-ms-parameter-location": "method"
    },
    "ErrorOrderByParameter": {
      "name": "$orderby",
      "in": "query",
      "description": "controls the sorting order and sorting based on which column",
      "required": false,
      "default": "count desc",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorSearchOrderParameter": {
      "name": "order",
      "in": "query",
      "description": "It controls the order of sorting",
      "required": false,
      "type": "string",
      "enum": [
        "desc",
        "asc"
      ],
      "default": "desc",
      "x-ms-parameter-location": "method"
    },
    "ErrorGroupSearchSortParameter": {
      "name": "sort",
      "in": "query",
      "description": "It controls the sort based on specified field",
      "required": false,
      "type": "string",
      "enum": [
        "matchingReportsCount",
        "exceptionClassName",
        "exceptionMessage",
        "exceptionMethod",
        "lastOccurrence"
      ],
      "default": "matchingReportsCount",
      "x-ms-parameter-location": "method"
    },
    "ErrorSearchSortParameter": {
      "name": "sort",
      "in": "query",
      "description": "It controls the sort based on specified field",
      "required": false,
      "type": "string",
      "enum": [
        "timestamp",
        "errorGroupId",
        "exceptionClassName",
        "exceptionFile",
        "exceptionLine",
        "exceptionMessage",
        "exceptionMethod",
        "deviceName",
        "osVersion",
        "userId"
      ],
      "default": "timestamp",
      "x-ms-parameter-location": "method"
    },
    "OsParameterOptional": {
      "name": "os",
      "in": "query",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ModelParameterOptional": {
      "name": "model",
      "in": "query",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorGroupParameter": {
      "name": "errorGroupId",
      "in": "path",
      "description": "The id of the error group",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorParameter": {
      "name": "errorId",
      "in": "path",
      "description": "The id of the error",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorGroupStateParameter": {
      "name": "errorGroupState",
      "in": "body",
      "description": "The state of the error group",
      "required": true,
      "schema": {
        "$ref": "#/definitions/ErrorGroupState"
      },
      "x-ms-parameter-location": "method"
    },
    "GroupStateParameter": {
      "name": "groupState",
      "in": "query",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ErrorDateParameter": {
      "name": "date",
      "in": "query",
      "description": "Date of data requested",
      "required": false,
      "type": "string",
      "format": "date-time",
      "x-ms-parameter-location": "method"
    },
    "ErrorTypeParameter": {
      "name": "errorType",
      "in": "query",
      "description": "Type of error (handled vs unhandled), including All",
      "required": false,
      "type": "string",
      "enum": [
        "all",
        "unhandledError",
        "handledError"
      ],
      "x-ms-parameter-location": "method"
    },
    "SingleErrorTypeParameter": {
      "name": "errorType",
      "in": "query",
      "description": "Type of error (handled vs unhandled), excluding All",
      "required": false,
      "type": "string",
      "enum": [
        "unhandledError",
        "handledError"
      ],
      "x-ms-parameter-location": "method"
    },
    "ErrorRetentionInDaysParameter": {
      "name": "errorRetentionInDays",
      "in": "body",
      "description": "The amount of days to keep the crashes for this application. retention_in_days is an enum value, can only be 28 or 90.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/ErrorRetentionSettings"
      },
      "x-ms-parameter-location": "method"
    },
    "ExportConfigurationIdParameter": {
      "name": "export_configuration_id",
      "in": "path",
      "description": "The id of the export configuration.",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ExportConfigurationParameter": {
      "name": "properties",
      "in": "body",
      "description": "Export configurations.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/ExportConfiguration"
      },
      "x-ms-parameter-location": "method"
    },
    "IncludeArchivedParameter": {
      "name": "include_archived",
      "in": "query",
      "description": "Include arhived push notifications",
      "required": false,
      "type": "boolean",
      "x-ms-parameter-location": "method"
    },
    "NotificationParameter": {
      "name": "properties",
      "in": "body",
      "description": "Notification specifications.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/NotificationDefinition"
      },
      "x-ms-parameter-location": "method"
    },
    "NotificationDeleteParameter": {
      "name": "notification_ids",
      "in": "body",
      "description": "List of notification ids",
      "required": true,
      "schema": {
        "$ref": "#/definitions/NotificationIdList"
      },
      "x-ms-parameter-location": "method"
    },
    "NotificationConfigParameter": {
      "name": "properties",
      "in": "body",
      "description": "Notification configurations.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/NotificationConfig"
      },
      "x-ms-parameter-location": "method"
    },
    "NotificationIdParameter": {
      "name": "notification_id",
      "in": "path",
      "description": "The id of the notification.",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ExportIdParameter": {
      "name": "export_id",
      "in": "path",
      "description": "The id of the export.",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ExportConfigParameter": {
      "name": "properties",
      "in": "body",
      "description": "Export configurations.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/ExportConfig"
      },
      "x-ms-parameter-location": "method"
    },
    "DeviceInstallIdParameter": {
      "name": "install_id",
      "in": "path",
      "description": "device install id",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "path_deployment_name": {
      "name": "deployment_name",
      "in": "path",
      "required": true,
      "description": "deployment name",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "path_promote_deployment_name": {
      "name": "promote_deployment_name",
      "in": "path",
      "required": true,
      "description": "deployment name",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "path_release_label": {
      "name": "release_label",
      "in": "path",
      "required": true,
      "description": "release label",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "IfMatchParameter": {
      "name": "If-Match",
      "type": "string",
      "in": "header",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "IdOrTitleParameter": {
      "name": "id_or_title",
      "in": "query",
      "description": "The title prefix for getting issues with title starting with",
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "AppIdParameter": {
      "name": "app_id",
      "in": "path",
      "description": "The id of the application",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "WebhookIdParameter": {
      "name": "webhook_id",
      "type": "string",
      "in": "path",
      "description": "The unique ID (UUID) of the webhook",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "EmailSettingsParameter": {
      "name": "emailSettings",
      "in": "body",
      "description": "Alerting email settings.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/AlertEmailSettings"
      },
      "x-ms-parameter-location": "method"
    },
    "WebhookParameter": {
      "name": "webHook",
      "in": "body",
      "description": "Alerting webhook.",
      "required": true,
      "schema": {
        "$ref": "#/definitions/AlertWebhook"
      },
      "x-ms-parameter-location": "method"
    },
    "BugTrackerSettingsParameter": {
      "name": "bugTrackerSettingsParameter",
      "in": "body",
      "description": "Bugtracker settings for a particular app",
      "required": true,
      "schema": {
        "$ref": "#/definitions/AlertingBugtracker"
      },
      "x-ms-parameter-location": "method"
    },
    "BugTrackerTokenIdParameter": {
      "name": "bugTrackerTokenIdParameter",
      "in": "body",
      "description": "Contains a Token ID for a bugtracker",
      "required": true,
      "schema": {
        "$ref": "#/definitions/BugTrackerTokenId"
      },
      "x-ms-parameter-location": "method"
    },
    "BugTrackerCrashGroupIssueParameter": {
      "name": "bugTrackerCrashGroupIssueParameter",
      "in": "body",
      "description": "BugTracker crashGroupissue create or update",
      "required": true,
      "schema": {
        "$ref": "#/definitions/NewCrashGroupAlertingEvent"
      },
      "x-ms-parameter-location": "method"
    },
    "BugTrackerCrashGroupStateChangeParameter": {
      "name": "bugTrackerCrashGroupChangeParameter",
      "in": "body",
      "description": "CrashGroupissue patched changes parameter",
      "required": true,
      "schema": {
        "$ref": "#/definitions/AlertCrashGroupStateChange"
      },
      "x-ms-parameter-location": "method"
    },
    "BugTrackerTypeParameter": {
      "name": "repo_type",
      "in": "query",
      "description": "BugTracker type parameter",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "TokenIdParameter": {
      "name": "token_id",
      "in": "query",
      "description": "BugTracker token id parameter",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "IssueIdParameter": {
      "name": "issue_id",
      "type": "string",
      "in": "path",
      "description": "Issue ID",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "CrashGroupIdParameter": {
      "name": "crash_group_id",
      "type": "string",
      "in": "path",
      "description": "CrashGroup Id",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "RepoTypeParameter": {
      "name": "repo_type",
      "type": "string",
      "in": "path",
      "description": "Type of bugtracker",
      "enum": [
        "github",
        "vsts",
        "jira"
      ],
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "BillingOrgNameParameter": {
      "name": "orgName",
      "in": "path",
      "description": "The name of the Organization",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "BillingPlanIdParameter": {
      "name": "billingPlanId",
      "in": "path",
      "description": "The ID of the Billing Plan",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "BillingPlanSelectionParameter": {
      "name": "billingPlanSelection",
      "in": "body",
      "description": "The Billing Plan selection to associate with an account or app",
      "required": true,
      "schema": {
        "$ref": "#/definitions/BillingPlanSelection"
      },
      "x-ms-parameter-location": "method"
    },
    "BillingPlansSelectionParameter": {
      "name": "billingPlansSelection",
      "in": "body",
      "description": "The Billing Plans selection for one or more services to associate with an account or app",
      "required": true,
      "schema": {
        "$ref": "#/definitions/BillingPlansSelection"
      },
      "x-ms-parameter-location": "method"
    },
    "BillingAccountIdParameter": {
      "name": "accountId",
      "in": "path",
      "description": "The account id",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "BillingGdprVerificationBlobUrl": {
      "name": "blobSasUrl",
      "in": "query",
      "description": "Blob SAS Url",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "GitHubMarketplacePurchaseParameter": {
      "name": "marketplacePurchase",
      "in": "body",
      "description": "The GitHub Marketplace purchase to convert to App Center billing plan",
      "required": true,
      "schema": {
        "$ref": "#/definitions/GitHubMarketplacePurchase"
      },
      "x-ms-parameter-location": "method"
    },
    "MessageParameter": {
      "name": "message",
      "in": "body",
      "description": "Message to send to actor",
      "required": true,
      "schema": {
        "$ref": "#/definitions/MessageEnvelope"
      },
      "x-ms-parameter-location": "method"
    },
    "PeriodTypeFilterParameter": {
      "name": "period",
      "in": "query",
      "description": "Type of period that should be included in the Billing Information",
      "required": false,
      "type": "string",
      "enum": [
        "Previous",
        "Current",
        "Next"
      ],
      "x-ms-parameter-location": "method"
    },
    "SearchIdentifierParameter": {
      "name": "identifier",
      "in": "path",
      "description": "The identifier to search by",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ServiceParameter": {
      "name": "service",
      "in": "path",
      "description": "The name of the service",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ServiceTypeFilterParameter": {
      "name": "service",
      "in": "query",
      "description": "Type of service that should be included in the Billing Information",
      "required": false,
      "type": "string",
      "enum": [
        "Test",
        "Build"
      ],
      "x-ms-parameter-location": "method"
    },
    "ShowOriginalPlansFilterParameter": {
      "name": "showOriginalPlans",
      "in": "query",
      "description": "Controls whether the API should show the original plan when Azure Subscription is not enabled",
      "required": false,
      "type": "boolean",
      "x-ms-parameter-location": "method"
    },
    "SubscriptionIdParameter": {
      "name": "subscriptionId",
      "in": "query",
      "description": "Specifies the subscription id to be assigned to the account",
      "required": false,
      "type": "boolean",
      "x-ms-parameter-location": "method"
    },
    "DataSubjectRightRequestToken": {
      "name": "token",
      "in": "path",
      "description": "Unique request ID (GUID)",
      "required": true,
      "type": "string",
      "format": "uuid",
      "x-ms-parameter-location": "method"
    },
    "DataSubjectRightEmail": {
      "name": "email",
      "in": "query",
      "description": "Email used for delete with x-authz-bypass headers",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    }
  },
  "securityDefinitions": {
    "APIToken": {
      "type": "apiKey",
      "name": "X-API-Token",
      "in": "header"
    },
    "Basic": {
      "type": "basic",
      "description": "HTTP Basic Authentication"
    }
  },
  "tags": [
    {
      "name": "account"
    },
    {
      "name": "build"
    },
    {
      "name": "distribute"
    },
    {
      "name": "crash"
    },
    {
      "name": "analytics"
    },
    {
      "name": "errors"
    },
    {
      "name": "export"
    },
    {
      "name": "push"
    },
    {
      "name": "test"
    },
    {
      "name": "codepush"
    },
    {
      "name": "alerting"
    },
    {
      "name": "billing"
    },
    {
      "name": "gdpr"
    },
    {
      "name": "mbaas"
    }
  ]
}