{
  "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/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/dsr/export/{token}": {},
    "/v0.1/user/dsr/export": {},
    "/v0.1/user/dsr/delete/{token}": {},
    "/v0.1/user/dsr/delete": {},
    "/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/{owner_name}/{app_name}/releases": {
      "get": {
        "operationId": "releases_listTester",
        "description": "Return a list of releases for a app a tester has access to.",
        "parameters": [
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/TesterAppRelease"
              }
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/tester/apps": {
      "get": {
        "operationId": "releases_listLatest",
        "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/public/sdk/apps/{app_secret}/distribution_groups/{distribution_group_id}/releases/latest": {
      "get": {
        "description": "Get a release with 'latest' for the given public group.",
        "operationId": "releases_getLatestByPublicDistributionGroup",
        "parameters": [
          {
            "name": "app_secret",
            "type": "string",
            "in": "path",
            "description": "The secret of the target application",
            "required": true
          },
          {
            "name": "distribution_group_id",
            "type": "string",
            "in": "path",
            "description": "the id for destination",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "The full release details of the latest release that was distributed from the given public group.",
            "schema": {
              "$ref": "#/definitions/ReleaseDetailsResponse"
            }
          },
          "403": {
            "description": "Error Codes:\n- `forbidden` - Unauthorized to access private distribution group\n",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "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"
            }
          }
        },
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/public/codepush/update_check": {
      "get": {
        "description": "Check for updates",
        "operationId": "codePushAcquisition_updateCheck",
        "parameters": [
          {
            "name": "deployment_key",
            "in": "query",
            "required": true,
            "type": "string"
          },
          {
            "name": "app_version",
            "in": "query",
            "required": true,
            "type": "string"
          },
          {
            "name": "package_hash",
            "in": "query",
            "type": "string"
          },
          {
            "name": "label",
            "in": "query",
            "type": "string"
          },
          {
            "name": "client_unique_id",
            "in": "query",
            "type": "string"
          },
          {
            "name": "is_companion",
            "in": "query",
            "type": "boolean"
          },
          {
            "name": "previous_label_or_app_version",
            "in": "query",
            "type": "string"
          },
          {
            "name": "previous_deployment_key",
            "in": "query",
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/UpdateCheckResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/public/codepush/status": {
      "get": {
        "description": "Returns the acquisition service status to the caller",
        "operationId": "codePushAcquisition_getAcquisitionStatus",
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/AcquisitionStatusSuccessResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/public/codepush/report_status/download": {
      "post": {
        "description": "Report download of specified release",
        "operationId": "codePushAcquisition_updateDownloadStatus",
        "parameters": [
          {
            "name": "release_metadata",
            "description": "Deployment status metric properties",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CodePushStatusMetricMetadata"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/public/codepush/report_status/deploy": {
      "post": {
        "description": "Report Deployment status metric",
        "operationId": "codePushAcquisition_updateDeployStatus",
        "parameters": [
          {
            "name": "release_metadata",
            "description": "Deployment status metric properties",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/CodePushStatusMetricMetadata"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/Failure"
            }
          }
        },
        "tags": [
          "codepush"
        ]
      }
    },
    "/v0.1/public/apps/{owner_name}/{app_name}/install_analytics": {
      "post": {
        "description": "Notify download(s) for the provided distribution release(s).",
        "operationId": "distibutionReleases_installAnalytics",
        "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": "body",
            "in": "body",
            "description": "The install analytics request payload",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AnalyticsReleasesResponse"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Install Analytics Notification Sent Successfully."
          }
        },
        "tags": [
          "distribute"
        ]
      }
    },
    "/v0.1/public/apps/{app_id}/releases/{release_id}/ios_manifest": {
      "get": {
        "operationId": "releases_getIosManifest",
        "description": "Returns the manifest.plist in XML format for installing the release on a device. Only available for iOS.",
        "parameters": [
          {
            "name": "app_id",
            "type": "string",
            "in": "path",
            "description": "The ID of the application",
            "required": true
          },
          {
            "name": "release_id",
            "type": "integer",
            "in": "path",
            "description": "The release_id",
            "required": true
          },
          {
            "name": "token",
            "type": "string",
            "in": "query",
            "description": "A hash that authorizes the download if it matches the release info.",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "The app's OS is not iOS.",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "403": {
            "description": "Forbidden - The token provided doesn't match the release's token.",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          },
          "404": {
            "description": "The app or release can't be found.",
            "schema": {
              "$ref": "#/definitions/ErrorDetails"
            }
          }
        },
        "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}/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 app. The app has to be owned by the organization.",
            "required": true,
            "schema": {
              "$ref": "#/definitions/AppTeamAddRequest"
            }
          }
        ],
        "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": {
              "items": {
                "$ref": "#/definitions/TeamResponse"
              }
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "teams_createTeam",
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "account"
        ]
      }
    },
    "/v0.1/orgs/{org_name}/invitations/{user_email}": {
      "patch": {
        "description": "Allows the role of an invited user to be changed",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "name": "user_email",
            "type": "string",
            "in": "path",
            "description": "The user email of the user to update",
            "required": true
          },
          {
            "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/resend": {
      "post": {
        "description": "Cancels an existing organization for the user and sends a new one",
        "parameters": [
          {
            "$ref": "#/parameters/organization_name"
          },
          {
            "name": "user_email",
            "in": "body",
            "description": "The email of the user for which to resend the invitation",
            "schema": {
              "$ref": "#/definitions/UserEmailRequest"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/ErrorResponse"
            }
          }
        },
        "operationId": "orgInvitations_sendNewInvitation",
        "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}/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}/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": {
      "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/management/analytics/trace_logs": {},
    "/v0.1/manage/releases/purge": {},
    "/v0.1/manage/devices/purge": {},
    "/v0.1/manage/codePush/purge": {},
    "/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}/versions": {
      "get": {
        "description": "Gets a list of application versions",
        "summary": "Gets a list of application versions",
        "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/{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": [
          {
            "$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}/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}/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/MissingSymbolCrashGroupsInfoResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/FailureResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/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/path_symbol_group_id"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/MissingSymbolCrashGroupsResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/FailureResponse"
            }
          }
        },
        "security": [
          {
            "APIToken": []
          }
        ],
        "tags": [
          "crash"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/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/query_top"
          },
          {
            "$ref": "#/parameters/query_filter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "schema": {
              "$ref": "#/definitions/MissingSymbolCrashGroupsResponse"
            }
          },
          "default": {
            "description": "Error",
            "schema": {
              "$ref": "#/definitions/FailureResponse"
            }
          }
        },
        "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}/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
          },
          {
            "$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}/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}": {
      "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"
        ]
      },
      "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/ReleaseUpdateResponse"
            }
          },
          "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 Mobile 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
          },
          {
            "$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": [
          {
            "$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 push config exists.",
        "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 configuration.",
        "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 notification configuration.",
        "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 notification configuration.",
        "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 notification details.",
        "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/campaign/archive": {
      "post": {
        "operationId": "Push_NotificationArchive",
        "description": "Archive push campaign(s)",
        "parameters": [
          {
            "$ref": "#/parameters/NotificationArchiveParameter"
          },
          {
            "$ref": "#/parameters/owner_name"
          },
          {
            "$ref": "#/parameters/app_name"
          }
        ],
        "responses": {
          "200": {
            "description": "notification campaign(s) was successfully archived."
          },
          "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 list of notifications",
        "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 notification.",
        "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"
        ]
      }
    },
    "/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}/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",
        "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",
        "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}/files/{file_id}/validate": {},
    "/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}/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_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": {
              "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": {
              "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"
        ]
      },
      "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}/update_devices/{resign_id}": {
      "get": {
        "description": "Returns the resign status to the caller",
        "operationId": "devices_getUpdateDevicesStatus",
        "parameters": [
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group.",
            "required": true
          },
          {
            "name": "resign_id",
            "type": "string",
            "description": "The ID of the resign operation",
            "in": "path",
            "required": true
          },
          {
            "$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}/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"
          },
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group",
            "required": true
          },
          {
            "name": "members",
            "in": "body",
            "description": "The list of members to resend the invitation",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DistributionGroupUserRequest"
            }
          }
        ],
        "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 Mobile 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"
          },
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group",
            "required": true
          },
          {
            "name": "members",
            "in": "body",
            "description": "The list of members to delete",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DistributionGroupUserRequest"
            }
          }
        ],
        "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"
          },
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group",
            "required": true
          },
          {
            "name": "exclude_pending_invitations",
            "type": "boolean",
            "in": "query",
            "description": "Whether to exclude pending invitations in the response",
            "required": false
          }
        ],
        "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"
          },
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group",
            "required": true
          },
          {
            "name": "members",
            "in": "body",
            "description": "The list of members to add",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DistributionGroupUserRequest"
            }
          }
        ],
        "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"
          }
        ],
        "produces": [
          "text/csv"
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "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"
          },
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group",
            "required": true
          }
        ],
        "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"
          },
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group",
            "required": true
          },
          {
            "name": "distribution_group",
            "in": "body",
            "description": "The attributes to update for the distribution group",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DistributionGroupPatchRequest"
            }
          }
        ],
        "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"
          },
          {
            "name": "distribution_group_name",
            "type": "string",
            "in": "path",
            "description": "The name of the distribution group",
            "required": true
          }
        ],
        "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"
          },
          {
            "name": "distribution_group",
            "in": "body",
            "description": "The data for the distribution group",
            "required": true,
            "schema": {
              "$ref": "#/definitions/DistributionGroupRequest"
            }
          }
        ],
        "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}/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}/crashes_info": {
      "get": {
        "description": "Gets whether the application has any crashes",
        "summary": "Gets whether the application has any crashes",
        "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/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",
        "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",
        "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",
        "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",
        "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",
        "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",
        "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",
        "summary": "Gets the native log of a specific crash as a text attachment",
        "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",
        "summary": "Gets the native log of a specific crash",
        "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",
        "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"
        ]
      }
    },
    "/v0.1/apps/{owner_name}/{app_name}/crash_groups/{crash_group_id}/crashes": {
      "get": {
        "description": "Gets all crashes of a group",
        "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",
        "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",
        "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.",
        "summary": "Gets a list of crash groups and whether the list contains all available groups.",
        "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}/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}/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}/apple_test_flight_groups": {
      "get": {
        "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/PropertyCountParameter"
          },
          {
            "$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",
        "parameters": [
          {
            "$ref": "#/parameters/StartParameter"
          },
          {
            "$ref": "#/parameters/EndParameter"
          },
          {
            "$ref": "#/parameters/VersionsParameter"
          },
          {
            "$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",
        "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",
        "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",
        "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",
        "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.",
        "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"
        ]
      }
    }
  },
  "definitions": {
    "GetInAppUpdateTokenResponse": {
      "properties": {
        "api_token": {
          "type": "string",
          "description": "The api token generated will not be accessible again"
        }
      },
      "required": [
        "api_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"
        },
        "aad_tenant_id": {
          "description": "The AAD tenant id",
          "type": "string"
        },
        "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"
        },
        "display_name": {
          "description": "The name of the AAD Tenant",
          "type": "string"
        }
      },
      "required": [
        "aad_tenant_id",
        "display_name"
      ]
    },
    "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"
        },
        "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"
        }
      }
    },
    "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",
          "type": "string"
        }
      },
      "required": [
        "repo_url",
        "user_id"
      ]
    },
    "AppRequest": {
      "properties": {
        "description": {
          "description": "A short text describing the app",
          "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"
          ]
        },
        "platform": {
          "description": "The platform of the app",
          "type": "string",
          "enum": [
            "Java",
            "Objective-C-Swift",
            "UWP",
            "Cordova",
            "React-Native",
            "Xamarin"
          ]
        }
      },
      "required": [
        "display_name",
        "os",
        "platform"
      ]
    },
    "AppTeamAddRequest": {
      "properties": {
        "name": {
          "description": "The name of the app to be added to the team",
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "AzureSubscriptionAddRequest": {
      "properties": {
        "subscription_id": {
          "description": "The azure subscription id",
          "type": "string"
        },
        "tenant_id": {
          "description": "The tenant id of the azure subscription belongs to",
          "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": {
          "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"
        }
      },
      "required": [
        "name"
      ]
    },
    "DistributionGroupUserRequest": {
      "properties": {
        "user_emails": {
          "description": "The list of emails of the users",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "EmailVerificationRequest": {
      "properties": {
        "token": {
          "description": "The verification token that was sent to the user",
          "type": "string"
        }
      },
      "required": [
        "token"
      ]
    },
    "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"
      ]
    },
    "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"
        }
      }
    },
    "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"
        }
      },
      "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"
          ]
        }
      }
    },
    "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"
      ]
    },
    "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.",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the account",
          "type": "string"
        },
        "name": {
          "description": "The slug name of the account",
          "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",
          "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)",
          "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",
          "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",
          "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."
        },
        "description": {
          "description": "The description of the token",
          "type": "string"
        }
      },
      "required": [
        "id",
        "created_at"
      ]
    },
    "AppGroupResponse": {
      "properties": {
        "id": {
          "description": "The unique ID (UUID) of the app",
          "type": "string"
        },
        "group_id": {
          "description": "The unique ID (UUID) of the group that the app belongs to",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the app",
          "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",
            "Custom"
          ]
        },
        "platform": {
          "description": "The platform of the app",
          "type": "string",
          "enum": [
            "Java",
            "Objective-C-Swift",
            "UWP",
            "Cordova",
            "React-Native",
            "Unity",
            "Xamarin",
            "Unknown"
          ]
        }
      },
      "required": [
        "id",
        "group_id",
        "name",
        "os",
        "platform"
      ]
    },
    "AppInvitationDetailResponse": {
      "properties": {
        "id": {
          "description": "The unique ID (UUID) of the invitation",
          "type": "string"
        },
        "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"
            ]
          }
        }
      },
      "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"
        },
        "app_id": {
          "description": "The unique id (UUID) of the app that this repository integration belongs to",
          "type": "string"
        },
        "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"
        }
      },
      "required": [
        "id",
        "app_id",
        "user_id",
        "repo_url"
      ]
    },
    "BasicAppResponse": {
      "properties": {
        "id": {
          "description": "The unique ID (UUID) of the app",
          "type": "string"
        },
        "description": {
          "description": "The description of the app",
          "type": "string"
        },
        "display_name": {
          "description": "The display name of the app",
          "type": "string"
        },
        "icon_url": {
          "description": "The string representation of the URL pointing to 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",
            "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",
                "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": {
            "distribution_groups": {
              "description": "The IDs of the distribution groups the current user is member of.",
              "type": "array",
              "items": {
                "$ref": "#/definitions/DistributionGroupResponse"
              }
            }
          }
        }
      ],
      "required": [
        "distribution_groups"
      ]
    },
    "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"
        },
        "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"
        },
        "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"
        },
        "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"
        },
        "tenant_id": {
          "description": "The tenant id of the azure subscription belongs to",
          "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"
        },
        "is_billable": {
          "description": "If the subscription can be used for billing",
          "type": "boolean"
        }
      },
      "required": [
        "subscription_id",
        "tenant_id",
        "subscription_name"
      ]
    },
    "DistributionGroupResponse": {
      "properties": {
        "id": {
          "description": "The unique ID of the distribution group",
          "type": "string"
        },
        "name": {
          "description": "The name of the distribution group used in URLs",
          "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"
      ]
    },
    "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"
      ]
    },
    "DistributionGroupUserGetResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the user",
          "type": "string"
        },
        "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"
      ]
    },
    "DistributionGroupWithUsersResponse": {
      "properties": {
        "id": {
          "description": "The unique ID of the distribution group",
          "type": "string"
        },
        "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"
        },
        "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"
        }
      },
      "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"
        },
        "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"
        },
        "invited_by": {
          "$ref": "#/definitions/UserProfileResponse"
        },
        "organization": {
          "$ref": "#/definitions/OrganizationResponse"
        },
        "app": {
          "$ref": "#/definitions/AppResponse"
        }
      },
      "required": [
        "invited_by",
        "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"
        },
        "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"
        },
        "email": {
          "description": "The email address of the invited user",
          "type": "string"
        },
        "role": {
          "description": "The role assigned to the invited user"
        }
      },
      "required": [
        "id",
        "email",
        "role"
      ]
    },
    "OrganizationResponse": {
      "properties": {
        "id": {
          "description": "The internal unique id (UUID) of the organization.",
          "type": "string"
        },
        "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"
          ]
        },
        "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"
        },
        "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"
      ]
    },
    "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"
        },
        "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"
      ]
    },
    "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"
      ]
    },
    "UserProfileResponse": {
      "properties": {
        "id": {
          "description": "The unique id (UUID) of the user",
          "type": "string"
        },
        "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"
        },
        "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"
      ]
    },
    "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"
        }
      }
    },
    "SourceRepositories": {
      "description": "A list of source repositories",
      "type": "array",
      "items": {
        "$ref": "#/definitions/SourceRepository"
      }
    },
    "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"
        },
        "xcodeProjectSha": {
          "description": "repo object Id of the pbxproject",
          "type": "string"
        },
        "workspaceProjectPaths": {
          "type": "string",
          "description": "Related projects paths for xcworkspace"
        }
      },
      "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"
        },
        "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"
        },
        "module": {
          "description": "The Gradle module to build",
          "type": "string"
        },
        "variant": {
          "description": "The Android build variant to build",
          "type": "string"
        },
        "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
        }
      },
      "required": [
        "module",
        "variant"
      ]
    },
    "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"
        }
      },
      "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"
        }
      },
      "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"
        }
      }
    },
    "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": {
        "distributionGroupId": {
          "type": "string",
          "description": "A distribution group ID or a store group ID"
        },
        "releaseNotes": {
          "type": "string",
          "description": "The release notes"
        }
      },
      "required": [
        "distributionGroupId"
      ]
    },
    "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"
        }
      }
    },
    "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"
        }
      }
    },
    "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"
          }
        },
        "emailContents": {
          "description": "latest email content",
          "type": "object",
          "properties": {
            "release_id": {
              "type": "string"
            },
            "app_name": {
              "type": "string"
            },
            "platform": {
              "type": "string"
            },
            "build": {
              "type": "string"
            },
            "version": {
              "type": "string"
            },
            "install_link": {
              "type": "string"
            }
          },
          "required": [
            "install_link"
          ]
        }
      },
      "required": [
        "userIds",
        "emailContents"
      ]
    },
    "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": {
        "mandatory_update": {
          "type": "boolean"
        },
        "release_notes": {
          "type": "string"
        },
        "destinations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "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 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"
        }
      }
    },
    "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"
        },
        "uploaded_at": {
          "description": "UTC time in ISO 8601 format of the uploaded time.",
          "type": "string"
        }
      }
    },
    "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"
        },
        "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"
          }
        }
      }
    },
    "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"
          ]
        },
        "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",
          "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/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"
        }
      }
    },
    "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": "In preview, the ID for the current upload",
          "type": "string"
        },
        "asset_domain": {
          "description": "In preview, the URL for the current upload",
          "type": "string"
        },
        "asset_token": {
          "description": "In preview, the token for the current upload",
          "type": "string"
        }
      },
      "required": [
        "upload_id",
        "upload_url"
      ]
    },
    "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"
          }
        }
      }
    },
    "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"
        }
      }
    },
    "Destination": {
      "allOf": [
        {
          "$ref": "#/definitions/DistributionGroup"
        },
        {
          "$ref": "#/definitions/DistributionStore"
        },
        {
          "type": "object",
          "properties": {
            "destination_type": {
              "description": "Destination can be either store or group.",
              "type": "string",
              "enum": [
                "group",
                "store"
              ]
            }
          }
        }
      ]
    },
    "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_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 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"
        }
      },
      "required": [
        "apple_developer_account_key",
        "apple_distribution_certificate_key",
        "allow_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"
      ]
    },
    "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."
        }
      }
    },
    "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."
        }
      }
    },
    "AppleLoginResponse": {
      "description": "Indicates if login was successful.",
      "properties": {
        "successful": {
          "type": "boolean",
          "description": "True when login was successful."
        }
      }
    },
    "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."
        }
      }
    },
    "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."
        }
      }
    },
    "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",
      "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."
        },
        "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."
        }
      }
    },
    "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."
        },
        "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": [
        "profiles_zip_base64",
        "status_url"
      ],
      "properties": {
        "profiles_zip_base64": {
          "type": "string",
          "description": "The updated provisioning profiles base64 encoded."
        },
        "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."
        }
      }
    },
    "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."
        }
      }
    },
    "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.",
          "items": {
            "$ref": "#/definitions/StoresBasicDetails"
          }
        }
      }
    },
    "ExternalStoreRequest": {
      "description": "ExternalStoreRequest",
      "properties": {
        "type": {
          "description": "store Type",
          "type": "string",
          "enum": [
            "googleplay",
            "intune",
            "windows",
            "apple"
          ]
        },
        "name": {
          "description": "name of the store. In case of googleplay, windows 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. Can be production for Windows Store.",
          "type": "string",
          "enum": [
            "production",
            "alpha",
            "beta",
            "testflight-internal",
            "testflight-external"
          ]
        },
        "intune_details": {
          "$ref": "#/definitions/IntuneStoreRequest"
        },
        "windows_details": {
          "$ref": "#/definitions/WindowsStoreRequest"
        },
        "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",
            "windows"
          ]
        },
        "name": {
          "description": "name of the store.",
          "type": "string"
        },
        "intune_details": {
          "$ref": "#/definitions/PrivateIntuneStoreRequest"
        }
      }
    },
    "WindowsStoreRequest": {
      "properties": {
        "secret_json": {
          "$ref": "#/definitions/WindowsSecretDetails"
        },
        "tenant_id": {
          "description": "tenant id the user account belongs to",
          "type": "string"
        }
      }
    },
    "WindowsSecretDetails": {
      "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"
        }
      }
    },
    "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"
          }
        }
      }
    },
    "UserInfo": {
      "properties": {
        "odata.context": {
          "description": "context",
          "type": "string"
        },
        "id": {
          "description": "the display name for the category",
          "type": "string"
        },
        "displayName": {
          "description": "the display name for the category",
          "type": "string"
        },
        "givenName": {
          "description": "the display name for the category",
          "type": "string"
        },
        "jobTitle": {
          "description": "the display name for the category",
          "type": "string"
        },
        "mail": {
          "description": "the display name for the category",
          "type": "string"
        },
        "userPrincipalName": {
          "description": "modified date for category",
          "type": "string"
        }
      }
    },
    "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"
        }
      }
    },
    "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"
        }
      }
    },
    "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"
        }
      }
    },
    "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",
          "items": {
            "$ref": "#/definitions/IntuneStoreResponse"
          }
        },
        "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"
        }
      }
    },
    "GooglePlayTestersResponse": {
      "description": "GooglePlayTestersResponse",
      "properties": {
        "tester": {
          "description": "email id of Google Groups or URL of the Google+ Communities",
          "type": "string"
        },
        "type": {
          "description": "type of testers i.e Google Groups or Google+ Communities",
          "type": "string",
          "enum": [
            "Google Group",
            "Google+ Community"
          ]
        }
      }
    },
    "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"
        }
      }
    },
    "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",
            "windows",
            "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",
            "windows"
          ]
        },
        "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",
            "windows"
          ]
        },
        "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"
        }
      }
    },
    "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 URL at which the client may download the symbol file",
          "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"
        }
      },
      "required": [
        "symbol_id",
        "platform",
        "type",
        "app_id",
        "url",
        "origin",
        "alternate_symbol_ids",
        "status"
      ]
    },
    "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"
      ]
    },
    "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)"
        }
      }
    },
    "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",
        "display_id",
        "app_version",
        "build",
        "status",
        "count",
        "first_occurrence",
        "last_occurrence",
        "crash_reason",
        "fatal",
        "annotation"
      ],
      "type": "object",
      "properties": {
        "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": [
        "crash_id",
        "timestamp",
        "version",
        "build",
        "device",
        "os_version",
        "user_name"
      ],
      "type": "object",
      "properties": {
        "details": {
          "$ref": "#/definitions/CrashDetails"
        },
        "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"
          }
        }
      }
    },
    "SymbolStatusEnum": {
      "description": "enumeration of symbol statuses",
      "enum": [
        "missing",
        "ignored",
        "available"
      ]
    },
    "MissingSymbol": {
      "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"
        }
      }
    },
    "MissingSymbols": {
      "description": "A list of missing symbols",
      "type": "array",
      "items": {
        "$ref": "#/definitions/MissingSymbol"
      }
    },
    "CrashLocation": {
      "description": "crash location information",
      "required": [
        "account",
        "container",
        "blob"
      ],
      "properties": {
        "account": {
          "type": "string",
          "description": "azure account"
        },
        "container": {
          "type": "string",
          "description": "blob container"
        },
        "blob": {
          "type": "string",
          "description": "blob name"
        }
      }
    },
    "ParkedCrash": {
      "description": "parked crash",
      "required": [
        "app_id",
        "app_ver",
        "app_build",
        "missing_symbols",
        "crash_id",
        "sdk_platform",
        "location"
      ],
      "properties": {
        "app_id": {
          "type": "string",
          "description": "application id"
        },
        "app_ver": {
          "type": "string",
          "description": "application version"
        },
        "app_build": {
          "type": "string",
          "description": "application build"
        },
        "missing_symbols": {
          "$ref": "#/definitions/MissingSymbols",
          "description": "list of missing symbols"
        },
        "crash_id": {
          "type": "string",
          "description": "id of the crash"
        },
        "sdk_platform": {
          "type": "string",
          "description": "platform of the sdk that sent crash"
        },
        "sdk_wrapper": {
          "type": "string",
          "description": "name of the sdk wrapper that sent crash"
        },
        "location": {
          "$ref": "#/definitions/CrashLocation",
          "description": "crash location"
        }
      }
    },
    "SymbolUpdateInfo": {
      "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"
        }
      }
    },
    "MissingSymbolCrashGroupStatusEnum": {
      "description": "enumeration of missing symbol grash group statuses",
      "enum": [
        "active",
        "pending",
        "closed"
      ]
    },
    "MissingSymbolCrashGroup": {
      "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/MissingSymbols",
          "description": "list of missing symbols"
        },
        "status": {
          "type": "string",
          "enum": [
            "active",
            "pending",
            "closed"
          ],
          "description": "group status"
        }
      }
    },
    "MissingSymbolCrashGroups": {
      "description": "A list of crash groups formed by missing symbols combination",
      "type": "array",
      "items": {
        "$ref": "#/definitions/MissingSymbolCrashGroup"
      }
    },
    "MissingSymbolCrashGroupsResponse": {
      "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/MissingSymbolCrashGroups",
          "description": "list of crash groups formed by missing symbols combination"
        }
      }
    },
    "MissingSymbolCrashGroupsInfoResponse": {
      "description": "missing symbol groups",
      "required": [
        "total_crash_count"
      ],
      "properties": {
        "total_crash_count": {
          "description": "total number of crashes for all missing symbol groups",
          "type": "integer"
        }
      }
    },
    "FailureResponse": {
      "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"
      ]
    },
    "HanledErrorLog": {
      "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"
      ]
    },
    "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"
        }
      }
    },
    "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"
      ]
    },
    "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"
          }
        }
      }
    },
    "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/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"
        }
      }
    },
    "ErrorGroups": {
      "type": "object",
      "properties": {
        "nextLink": {
          "type": "string"
        },
        "errorGroups": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/ErrorGroupListItem"
          }
        }
      }
    },
    "ErrorGroupListItem": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/ErrorGroupState"
        }
      ],
      "properties": {
        "errorGroupId": {
          "type": "string"
        },
        "appVersion": {
          "type": "string"
        },
        "count": {
          "type": "integer",
          "format": "int64"
        },
        "deviceCount": {
          "type": "integer",
          "format": "int64"
        },
        "lastOccurrence": {
          "type": "string",
          "format": "date-time"
        },
        "exceptionType": {
          "type": "string"
        },
        "exceptionMessage": {
          "type": "string"
        }
      },
      "required": [
        "errorGroupId",
        "appVersion",
        "state",
        "count",
        "deviceCount",
        "lastOccurrence"
      ]
    },
    "ErrorGroup": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/ErrorGroupState"
        }
      ],
      "properties": {
        "errorGroupId": {
          "type": "string"
        },
        "appVersion": {
          "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"
        },
        "exceptionFile": {
          "type": "string"
        },
        "exceptionLine": {
          "type": "string"
        },
        "reasonFrames": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HandledErrorReasonFrame"
          }
        }
      },
      "required": [
        "errorGroupId",
        "appVersion",
        "state",
        "count",
        "deviceCount",
        "firstOccurrence",
        "lastOccurrence"
      ]
    },
    "ErrorGroupState": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "open",
            "closed",
            "ignored"
          ]
        }
      },
      "required": [
        "state"
      ]
    },
    "ErrorDownload": {
      "type": "object",
      "format": "file"
    },
    "ErrorDownloadLink": {
      "type": "object",
      "properties": {
        "link": {
          "type": "string"
        }
      },
      "required": [
        "link"
      ]
    },
    "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/DateTimePercentages"
          }
        }
      }
    },
    "HandledErrors": {
      "type": "object",
      "properties": {
        "nextLink": {
          "type": "string"
        },
        "errors": {
          "description": "Errors list.",
          "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"
        }
      }
    },
    "HandledErrorDetails": {
      "type": "object",
      "allOf": [
        {
          "$ref": "#/definitions/HandledError"
        }
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "reasonFrames": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/HandledErrorReasonFrame"
          }
        },
        "properties": {
          "type": "object",
          "additionalProperties": {
            "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"
        }
      }
    },
    "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"
      ]
    },
    "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": [
            "Cancelled",
            "Completed",
            "Enqueued",
            "Processing",
            "Unknown"
          ],
          "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"
        }
      },
      "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(priority, expiration, 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": "Generic notification target.",
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ]
    },
    "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.",
      "type": "object",
      "discriminator": "type",
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "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"
        }
      }
    },
    "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"
          ]
        },
        "resource_name": {
          "type": "string",
          "description": "The resource name on azure"
        },
        "resource_group": {
          "type": "string",
          "description": "The resource group name on azure"
        }
      },
      "required": [
        "type"
      ]
    },
    "ExportConfigurationBlobStorageConnectionString": {
      "description": "Configuration for export to Blob Storage with customer provided connection string",
      "x-ms-discriminator-value": "blob_storage_connection_string",
      "allOf": [
        {
          "$ref": "#/definitions/ExportConfiguration"
        }
      ],
      "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/ExportConfiguration"
        }
      ],
      "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"
        },
        "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"
      ]
    },
    "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"
        }
      }
    },
    "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"
        },
        "uploadedBy": {
          "type": "string",
          "description": "The name of the user who uploaded the test"
        }
      }
    },
    "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"
        }
      }
    },
    "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"
              }
            }
          }
        }
      }
    },
    "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"
            }
          }
        }
      }
    },
    "Deployment": {
      "required": [
        "name"
      ],
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "latest_release": {
          "$ref": "#/definitions/CodePushRelease"
        }
      }
    },
    "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"
      ]
    },
    "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": [
            "eTag",
            "enabled",
            "userId",
            "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": [
        "request_id",
        "appId",
        "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"
        }
      }
    },
    "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"
        }
      },
      "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"
              }
            },
            "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"
                }
              },
              "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"
        }
      }
    },
    "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"
        }
      }
    },
    "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"
        },
        "pushService": {
          "$ref": "#/definitions/ServiceBillingPlans"
        },
        "testService": {
          "$ref": "#/definitions/ServiceBillingPlans"
        }
      }
    },
    "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"
        },
        "priceBucket": {
          "description": "Price bucket of the billing plan. Free plans start with 0, paid plans have higher price buckets",
          "type": "integer"
        },
        "service": {
          "description": "Name of the service that the plan applies to.",
          "type": "string",
          "enum": [
            "Build",
            "Push",
            "Test"
          ]
        },
        "limits": {
          "$ref": "#/definitions/MetricsValues"
        },
        "attributes": {
          "$ref": "#/definitions/AttributesValues"
        }
      }
    },
    "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"
        },
        "pushService": {
          "$ref": "#/definitions/BillingPlanSelection"
        },
        "testService": {
          "$ref": "#/definitions/BillingPlanSelection"
        }
      }
    },
    "BillingResourceUsage": {
      "description": "Usage section in the Billing Information",
      "type": "object",
      "properties": {
        "buildService": {
          "$ref": "#/definitions/ServiceResourceUsage"
        },
        "pushService": {
          "$ref": "#/definitions/ServiceResourceUsage"
        },
        "testService": {
          "$ref": "#/definitions/ServiceResourceUsage"
        }
      }
    },
    "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"
        },
        "expectedLatestPushExists": {
          "description": "Is the age of the most recent Push 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"
        },
        "latestPushUsageRecordTime": {
          "description": "The time of the most recent Push 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"
        }
      }
    },
    "DataSubjectRightResponse": {
      "type": "object",
      "properties": {
        "token": {
          "description": "Unique request identifier",
          "type": "string"
        },
        "createdAt": {
          "description": "ISO 8601 format timestamp of when request was created.",
          "type": "string"
        }
      },
      "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"
      ]
    }
  },
  "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"
    },
    "app": {
      "name": "app",
      "in": "body",
      "description": "The data for the app",
      "required": true,
      "schema": {
        "$ref": "#/definitions/AppRequest"
      },
      "x-ms-parameter-location": "method"
    },
    "app_id": {
      "name": "app_id",
      "type": "string",
      "in": "path",
      "description": "The unique ID (UUID) of the app",
      "required": true,
      "x-ms-parameter-location": "method"
    },
    "azure_subscription_id": {
      "name": "azure_subscription_id",
      "type": "string",
      "in": "path",
      "description": "The unique ID (UUID) of the azure subscription",
      "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"
    },
    "invitation_id": {
      "name": "invitation_id",
      "type": "string",
      "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_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",
      "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",
      "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"
    },
    "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"
    },
    "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"
    },
    "query_top": {
      "name": "top",
      "in": "query",
      "required": true,
      "description": "top N elements",
      "type": "integer",
      "x-ms-parameter-location": "method"
    },
    "query_filter": {
      "name": "filter",
      "in": "query",
      "required": false,
      "description": "query filter",
      "type": "string",
      "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"
    },
    "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"
    },
    "ErrorGroupParameter": {
      "name": "errorGroupId",
      "in": "path",
      "description": "The id of the error group",
      "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"
    },
    "ErrorParameter": {
      "name": "errorId",
      "in": "path",
      "description": "The id of the error",
      "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"
    },
    "VersionParameterOptional": {
      "name": "version",
      "in": "query",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "GroupStateParameter": {
      "name": "groupState",
      "in": "query",
      "required": false,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "OsParameter": {
      "name": "os",
      "in": "query",
      "required": true,
      "type": "string",
      "format": "string",
      "x-ms-parameter-location": "method"
    },
    "ModelParameter": {
      "name": "model",
      "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"
    },
    "PropertyCountParameter": {
      "name": "count",
      "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"
    },
    "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"
    },
    "NotificationArchiveParameter": {
      "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"
    },
    "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"
    },
    "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"
    },
    "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": "Issue 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"
    },
    "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"
    },
    "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",
        "Push"
      ],
      "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",
      "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": "push"
    },
    {
      "name": "export"
    },
    {
      "name": "test"
    },
    {
      "name": "codepush"
    },
    {
      "name": "alerting"
    },
    {
      "name": "billing"
    },
    {
      "name": "gdpr"
    }
  ]
}