swagger: '2.0' # API metadata info: title: AppVeyor REST API version: 1.0.0 description: | AppVeyor is a hosted continuous integration service which runs on Microsoft Windows. The AppVeyor REST API provides a RESTful way to interact with the AppVeyor service. This includes managing projects, builds, deployments, and the teams that build them. Additional help and discussion of the AppVeyor REST API is available at http://help.appveyor.com/discussions This Swagger definition is an **unofficial** description of the AppVeyor REST API maintained at https://github.com/kevinoid/appveyor-swagger Please report any issues or suggestions for this Swagger definition at https://github.com/kevinoid/appveyor-swagger/issues/new #### API Conventions Fields which are missing from update operations (`PUT` requests) are typically reset to their default values. So although most fields are not technically required, they should usually be specified in practice. contact: name: AppVeyor Team email: team@appveyor.com url: https://www.appveyor.com/about/ termsOfService: https://www.appveyor.com/terms-of-service/ license: name: AppVeyor End User License Agreement (EULA) url: https://www.appveyor.com/eula/ x-logo: url: https://www.appveyor.com/assets/img/appveyor-logo-256.png x-unofficialSpec: true # Link to published docs externalDocs: description: AppVeyor REST API Documentation url: https://www.appveyor.com/docs/api/ # Domain of the service host: ci.appveyor.com # Protocols the API supports schemes: - https # Path prefix for API paths basePath: /api # Supported request types (Content-Type) consumes: - application/json # Supported response types (Accept) produces: - application/json - application/xml securityDefinitions: # OpenAPI v3.0 definition: #apiToken: # type: http # scheme: bearer apiToken: description: >- API token can be acquired from https://ci.appveyor.com/api-keys This value must be passed to the server in the `Authorization` header as `"Bearer "`. Since [bearer token authentication support is not explicitly supported in OpenAPI 2.0](https://github.com/OAI/OpenAPI-Specification/issues/583), client code will vary. Clients created with [swagger-codegen](https://github.com/swagger-api/swagger-codegen) should set `apiKeyPrefix` to `"Bearer"` and set `apiKey` to the token. Other clients may need to set `apiKey` to the string `"Bearer "`. Note that this should be [fixed in OpenAPI 3.0](https://github.com/OAI/OpenAPI-Specification/pull/807)), whenever that becomes available and supported. #### User-Level API Keys To use a user-level API key (prefixed with "v2."), `basePath` must be changed to `/api/account/{accountName}` where `{accountName}` is the name of the account for which requests will be made. type: apiKey in: header name: Authorization security: - apiToken: [] tags: - name: Collaborator externalDocs: url: https://www.appveyor.com/docs/api/team/ - name: Role externalDocs: url: https://www.appveyor.com/docs/api/team/ - name: User externalDocs: url: https://www.appveyor.com/docs/api/team/ - name: Build externalDocs: url: https://www.appveyor.com/docs/api/projects-builds/ - name: Project externalDocs: url: https://www.appveyor.com/docs/api/projects-builds/ - name: Deployment externalDocs: url: https://www.appveyor.com/docs/api/environments-deployments/ - name: Environment externalDocs: url: https://www.appveyor.com/docs/api/environments-deployments/ parameters: ### {{{ Teams roleId: name: roleId in: path description: Role ID type: integer required: true minimum: 0 userId: name: userId in: path description: User ID type: integer required: true minimum: 0 userInvitationId: name: userInvitationId in: path description: User Invitation ID type: string required: true minLength: 1 ### }}} ### {{{ Projects and Builds accountName: name: accountName in: path # Note: copied to accountName server variable for user-level API spec description: |- AppVeyor account name on which to operate. Accounts for which a user has access are listed on the [Security page of the user profile](https://ci.appveyor.com/security) (when logged in). The user account is also the `accountName` property of `UserAccount`. type: string required: true minLength: 1 all: name: all in: query description: |- Include not only `successful`, but also jobs with `failed`, and `cancelled` status. type: boolean default: false artifactFileName: name: artifactFileName in: path description: |- File name (or path) of a build artifact file. Corresponds to the `fileName` property of `ArtifactModel`. URL-encoding of slashes in parameter values is optional. type: string required: true minLength: 1 badgeRepoProvider: name: badgeRepoProvider in: path description: Repository provider supported for badges type: string # Note: Values are case-insensitive. # Match capitalization of RepositoryProvider for ease of use. enum: - bitBucket - gitHub required: true branch: name: branch in: query description: Repository Branch type: string minLength: 1 buildBranch: name: buildBranch in: path description: Build Branch type: string required: true buildVersion: name: buildVersion in: path description: Build Version (`version` property of `Build`) type: string required: true job: name: job in: query description: Name of the build job. type: string jobId: name: jobId in: path description: Build ID (`jobId` property of `BuildJob`) type: string required: true pr: name: pr in: query description: | Include PR builds in the search results? `true` - take artifact from PR builds only; `false` - do not look for artifact in PR builds; default/unspecified - look for artifact in both PR an non-PR builds. type: boolean projectSlug: name: projectSlug in: path description: Project Slug type: string required: true repoAccountName: name: repoAccountName in: path description: Account name with repository provider type: string required: true minLength: 1 repoSlug: name: repoSlug in: path description: Slug (URL component) of repository. type: string required: true minLength: 1 recordsNumber: name: recordsNumber in: query description: >- Number of results to include in the response. getProjectDeployments is documented to have a maximum of 20. It currently returns 500 Internal Server Error for recordsNumber <= 5. In the past it has returned 500 Internal Server Error for many different values which did not match the value used by the ci.appveyor.com web interface at the time. As of 2018-09-08, the value used by the web interface is 10. type: integer minimum: 0 required: true startBuildId: description: Maximum `buildId` to include in the results (exclusive). name: startBuildId in: query type: integer minimum: 0 statusBadgeId: name: statusBadgeId in: path description: >- ID of the status badge (`statusBadgeId` from `ProjectWithConfiguration`). type: string minLength: 1 required: true tag: name: tag in: query description: A git (or other VCS) tag type: string minLength: 1 ### {{{ Status badges failingText: name: failingText in: query description: Text to show in badge when build is failing. type: string # Parameter can be unspecified (not present), but can't be empty minLength: 1 passingText: name: passingText in: query description: Text to show in badge when build is passing. type: string # Parameter can be unspecified (not present), but can't be empty minLength: 1 pendingText: name: pendingText in: query description: Text to show in badge when build is pending. type: string # Parameter can be unspecified (not present), but can't be empty minLength: 1 retina: name: retina in: query description: >- Return a larger image suitable for retina displays? Exclusive with `svg`. type: boolean default: false svg: name: svg in: query description: Return an SVG image instead of PNG? Exclusive with `retina`. type: boolean default: false ### }}} ### }}} ### {{{ Environments and Deployments deploymentId: name: deploymentId in: path description: Deployment ID (`deploymentId` property of `Deployment`) type: integer minimum: 0 required: true deploymentEnvironmentId: name: deploymentEnvironmentId in: path description: > Deployment Environment ID (`deploymentEnvironmentId` property of `DeploymentEnvironment`) type: integer minimum: 0 required: true ### }}} definitions: Error: description: | Schema of object returned in 4XX and 5XX responses. Note: The name is unfortunate, since it conflicts with `java.lang.Error` and other generic error classes. It is the name used in XML responses, so it is used for consistency and possible future XML deserialization support. type: object properties: message: type: string modelState: description: | When present, this property is a map of property names in the format `request.` to an `Array` of validation error message strings for the property. type: object additionalProperties: type: array items: type: string required: [message] Timestamped: type: object properties: created: readOnly: true type: string format: date-time updated: readOnly: true type: string format: date-time UnknownType: description: | A schema for values which have an undocumented/unknown type. Although the type of such values could be left unspecified according to JSON Schema (and by extension OpenAPI 2.0), such unspecified types cause tool failures (e.g. swagger-codegen). So this type can be used as a placeholder to prevent errors and document the behavior. type: string enum: [unknown] ### {{{ Teams BuildNotificationFrequency: type: string enum: [all, myCommits, none] DeploymentNotificationFrequency: type: string enum: [all, none] CollaboratorUpdate: description: | Technically `userId` and `roleId` have default value 0 and are not required, but since user 0 and role 0 never exist it would always cause a 404 response. type: object properties: userId: type: integer minimum: 0 roleId: type: integer minimum: 0 # Tested with POST /collaborators 2016-12-29 required: [userId, roleId] example: userId: 2018 roleId: 3040 PermissionName: description: | Available permission names. The names correspond to the following groups: #### AccountPermission - ManageApplicationAuthorizations - UpdateAccountDetails - UpdateBillingDetails #### BuildEnvironmentPermission - ConfigureBuildEnvironment #### DenyPermission - DenyAllProjectsEnvironments #### EnvironmentsPermission - DeployToEnvironment - ManageEnvironments - UpdateEnvironmentSettings #### ProjectsPermission - ManageProjects - RunProjectBuild - UpdateProjectSettings #### RolesPermission - AddRole - DeleteRole - UpdateRoleDetails #### UserPermission - ConfigureApiKeys #### UsersPermission - AddUser - DeleteUser - UpdateUserDetails type: string enum: # AccountPermission: - ManageApplicationAuthorizations - UpdateAccountDetails - UpdateBillingDetails # BuildEnvironmentPermission: - ConfigureBuildEnvironment # DenyPermission: - DenyAllProjectsEnvironments # EnvironmentsPermission: - DeployToEnvironment - ManageEnvironments - UpdateEnvironmentSettings # ProjectsPermission: - ManageProjects - RunProjectBuild - UpdateProjectSettings # RolesPermission: - AddRole - DeleteRole - UpdateRoleDetails # UserPermission: - ConfigureApiKeys # UsersPermission: - AddUser - DeleteUser - UpdateUserDetails PermissionState: type: object properties: name: $ref: '#/definitions/PermissionName' description: type: string allowed: description: | State of the named permission. `true` to allow, `false` to deny, missing to inherit. type: boolean required: [name] GroupName: type: string enum: - Account - BuildEnvironment - Deny - Environments - Projects - Roles - User - Users GroupPermissions: type: object properties: name: $ref: '#/definitions/GroupName' permissions: type: array items: $ref: '#/definitions/PermissionState' required: [name, permissions] RoleAddition: type: object properties: name: type: string minLength: 1 required: [name] example: name: My Role Role: description: | Technically `roleId` has default value 0 and is not required, but since role 0 never exists it would always cause a 404 response. allOf: - $ref: '#/definitions/Timestamped' - type: object properties: roleId: type: integer minimum: 0 name: type: string # Tested with PUT /api/roles 2016-12-29 minLength: 1 isSystem: type: boolean readOnly: true # Tested with PUT /api/roles 2016-12-29 # Technically roleId required: [roleId, name] RoleWithGroups: allOf: - $ref: '#/definitions/Role' - type: object properties: groups: type: array items: $ref: '#/definitions/GroupPermissions' example: roleId: 3040 name: My Role isSystem: false created: '2014-03-18T20:12:08.4749886+00:00' groups: - name: Deny permissions: - name: DenyAllProjectsEnvironments description: Deny all projects and environments, unless explicitly allowed allowed: false - name: Projects permissions: - name: ManageProjects description: Create, delete projects, update project settings allowed: true - name: UpdateProjectSettings description: Update project settings allowed: true - name: RunProjectBuild description: Run project builds allowed: false - name: DeleteProjectBuilds description: Delete project builds allowed: false - name: Environments permissions: - name: ManageEnvironments description: Create, delete projects, update environment settings allowed: false - name: UpdateEnvironmentSettings description: Update environment settings allowed: false - name: DeployToEnvironment description: Deploy to environment allowed: false - name: Account permissions: - name: UpdateAccountDetails description: Update account details allowed: false - name: Users permissions: - name: AddUser description: Add new user allowed: false - name: UpdateUserDetails description: Update user details allowed: false - name: DeleteUser description: Delete user allowed: false - name: Roles permissions: - name: AddRole description: Add new role allowed: false - name: UpdateRoleDetails description: Update role details allowed: false - name: DeleteRole description: Delete role allowed: false - name: User permissions: - name: ConfigureApiKeys description: Generate API keys allowed: false InviteUserRequest: type: object properties: email: type: string format: email roleId: type: integer minimum: 0 required: - email - roleId UserInvitationModel: type: object properties: userInvitationId: readOnly: true type: string minLength: 1 email: type: string format: email roleId: type: integer minimum: 0 roleName: readOnly: true type: string accountId: readOnly: true type: integer accountName: readOnly: true type: string created: readOnly: true type: string format: date-time required: - userInvitationId - email - roleId - accountId - created JoinAccountRequest: type: object properties: invitationId: type: string minLength: 1 required: - invitationId SessionUserModel: allOf: - $ref: '#/definitions/Timestamped' - type: object properties: userId: readOnly: true type: integer minimum: 0 email: type: string format: email gravatarHash: type: string bitBucketUsername: type: string gitHubUsername: type: string gitLabUserId: type: string vsoUsername: type: string twoFactorAuthEnabled: type: boolean fullName: type: string pageSize: type: integer minimum: 0 readOnly: true required: - userId - email PlanName: type: string enum: - free PlanStatus: type: string enum: - active FeatureFlags: type: string enum: - distv2 SessionUserAccountModel: allOf: - $ref: '#/definitions/Timestamped' - type: object properties: accountId: readOnly: true type: integer minimum: 0 name: readOnly: true type: string isOwner: readOnly: true type: boolean isCollaborator: readOnly: true type: boolean roleId: type: integer minimum: 0 roleName: readOnly: true type: string permissions: type: array items: $ref: '#/definitions/PermissionName' timeZoneId: type: string planId: $ref: '#/definitions/PlanName' planStart: readOnly: true type: string format: date-time planEnd: readOnly: true type: string format: date-time planStatus: $ref: '#/definitions/PlanStatus' gitHubPlan: type: boolean gitHubPlanOrg: type: string unpaid: type: boolean unverified: type: boolean blocked: type: boolean manualPayments: type: boolean featureFlags: $ref: '#/definitions/FeatureFlags' allowCustomBuildEnvironment: type: boolean isEnterprisePlan: type: boolean SessionModel: type: object properties: setupRequired: type: boolean twoFactorAuthRequired: type: boolean user: $ref: '#/definitions/SessionUserModel' accounts: type: array items: $ref: '#/definitions/SessionUserAccountModel' UserAccountSettings: type: object properties: successfulBuildNotification: $ref: '#/definitions/BuildNotificationFrequency' failedBuildNotification: $ref: '#/definitions/BuildNotificationFrequency' notifyWhenBuildStatusChangedOnly: description: | Note that this value is `true` on user creation, but behaves as `false` when not specified on update. type: boolean default: false successfulDeploymentNotification: $ref: '#/definitions/DeploymentNotificationFrequency' failedDeploymentNotification: $ref: '#/definitions/DeploymentNotificationFrequency' notifyWhenDeploymentStatusChangedOnly: description: | Note that this value is `true` on user creation, but behaves as `false` when not specified on update. type: boolean default: false # Tested against PUT /users 2016-12-29 required: - successfulBuildNotification - failedBuildNotification - successfulDeploymentNotification - failedDeploymentNotification # Note: I would prefer the name User, but User must be used for # UserGroupPermissions in the due to how discriminator works. # Item 1 of https://github.com/OAI/OpenAPI-Specification/issues/707 UserAccount: allOf: - $ref: '#/definitions/Timestamped' - type: object properties: accountId: readOnly: true type: integer minimum: 0 accountName: readOnly: true type: string isOwner: readOnly: true type: boolean isCollaborator: readOnly: true type: boolean userId: type: integer minimum: 0 fullName: type: string email: type: string format: email password: type: string minLength: 1 format: password roleId: type: integer minimum: 0 roleName: readOnly: true type: string twoFactorAuthEnabled: type: boolean pageSize: type: integer minimum: 0 readOnly: true # Tested against PUT /users 2016-12-29 required: [fullName, email] example: userId: 3019 fullName: John Smith email: john@smith.com roleId: 4 successfulBuildNotification: all failedBuildNotification: all notifyWhenBuildStatusChangedOnly: true UserAccountRolesResults: description: >- The roles property contains all roles, not only the role for which the user is a member. type: object properties: user: $ref: '#/definitions/UserAccount' roles: type: array items: $ref: '#/definitions/Role' ### Teams }}} ### {{{ Projects and Builds StringValueObject: type: object properties: value: type: string Status: type: string enum: - cancelled - cancelling - failed - queued - running - starting - success Job: allOf: - $ref: '#/definitions/Timestamped' - type: object properties: jobId: type: string name: type: string status: $ref: '#/definitions/Status' started: type: string format: date-time finished: type: string format: date-time OSType: type: string enum: [Ubuntu, Windows] BuildJob: allOf: - $ref: '#/definitions/Job' - type: object properties: osType: $ref: '#/definitions/OSType' allowFailure: type: boolean messagesCount: type: integer minimum: 0 compilationMessagesCount: type: integer minimum: 0 compilationErrorsCount: type: integer minimum: 0 compilationWarningsCount: type: integer minimum: 0 testsCount: type: integer minimum: 0 passedTestsCount: type: integer minimum: 0 failedTestsCount: type: integer minimum: 0 artifactsCount: type: integer minimum: 0 BuildStartRequest: type: object properties: accountName: type: string minLength: 1 projectSlug: type: string minLength: 1 branch: type: string commitId: type: string pullRequestId: description: Can not be used with `branch` or `commitId` type: integer minimum: 1 environmentVariables: type: object additionalProperties: type: string required: [accountName, projectSlug] example: accountName: your-account-name projectSlug: project-slug-from-url branch: master environmentVariables: my_var: value another_var: another value ReRunBuildRequest: type: object properties: buildId: type: integer minimum: 0 reRunIncomplete: type: boolean description: >- Set `reRunIncomplete` set to `false` (default value) for full build re-run. Set it set to `true` to rerun only failed or cancelled jobs in multijob build. required: [buildId] example: buildId: 23864 reRunIncomplete: true BuildMessageCategory: type: string # TODO: Find a way to enumerate these enum: - information # This category was observed in compilationMessages: # https://ci.appveyor.com/project/SonarSource/sonar-scanner-msbuild/build/1.0.1003/messages # Not sure if it applies to build messages - warning BuildMessage: type: object properties: category: $ref: '#/definitions/BuildMessageCategory' message: type: string created: type: string format: date-time BuildLookupModel: type: object properties: branch: type: string buildId: type: integer minimum: 0 message: type: string version: type: string Build: allOf: - $ref: '#/definitions/BuildLookupModel' - $ref: '#/definitions/Timestamped' - type: object properties: projectId: type: integer minimum: 0 jobs: description: >- Always empty in getProjectHistory and startDeployment responses. type: array items: $ref: '#/definitions/BuildJob' buildNumber: type: integer minimum: 0 messageExtended: type: string isTag: type: boolean commitId: type: string authorName: type: string authorUsername: type: string committerName: type: string committerUsername: type: string committed: type: string format: date-time pullRequestId: type: integer minimum: 1 pullRequestName: type: string messages: type: array items: $ref: '#/definitions/BuildMessage' status: $ref: '#/definitions/Status' started: type: string format: date-time finished: type: string format: date-time RepositoryAuthenticationType: type: string enum: [credentials, ssh] RepositoryProvider: type: string enum: - bitBucket - git - gitHub - gitLab - kiln - mercurial - stash - subversion - vso RepositoryScm: type: string enum: - git - mercurial - subversion AccessRightName: type: string enum: [Delete, Deploy, RunBuild, Update, View] AceAccessRightDefinition: type: object properties: name: $ref: '#/definitions/AccessRightName' description: type: string required: [name] AceAccessRight: type: object properties: name: $ref: '#/definitions/AccessRightName' allowed: description: true to allow, false to deny, undefined to inherit type: boolean required: [name] RoleAce: type: object properties: roleId: type: integer minimum: 0 name: type: string isAdmin: type: boolean accessRights: type: array items: $ref: '#/definitions/AceAccessRight' SecurityDescriptor: type: object properties: accessRightDefinitions: type: array items: $ref: '#/definitions/AceAccessRightDefinition' roleAces: type: array items: $ref: '#/definitions/RoleAce' NuGetFeed: allOf: - $ref: '#/definitions/Timestamped' - type: object properties: nuGetFeedId: type: integer id: type: string name: type: string accountId: type: integer minimum: 0 projectId: type: integer minimum: 0 isPrivateProject: type: boolean publishingEnabled: type: boolean ProjectAddition: description: >- `repositoryAuthentication` is only used for git, mercurial, subversion `repositoryProvider`. type: object properties: repositoryProvider: $ref: '#/definitions/RepositoryProvider' repositoryName: description: >- URL when repositoryProvider is git, mercurial, subversion username/project when repositoryProvider is gitHub type: string minLength: 1 repositoryAuthentication: $ref: '#/definitions/RepositoryAuthenticationType' repositoryUsername: description: Required if repositoryAuthentication is credentials type: string repositoryPassword: description: Required if repositoryAuthentication is credentials type: string format: password required: [repositoryProvider, repositoryName] example: repositoryProvider: gitHub repositoryName: FeodorFitsner/demo-app ProjectLookupModel: type: object properties: projectId: type: integer minimum: 0 accountName: type: string readOnly: true name: type: string slug: type: string readOnly: true # Note: requirements tested against PUT /api/projects 2016-12-21 required: - projectId Project: allOf: - $ref: '#/definitions/ProjectLookupModel' - $ref: '#/definitions/Timestamped' - type: object properties: accountId: type: integer minimum: 0 readOnly: true builds: description: Only non-empty for response from getProjects. type: array items: $ref: '#/definitions/Build' readOnly: true currentBuildId: type: integer minimum: 0 repositoryType: $ref: '#/definitions/RepositoryProvider' repositoryScm: $ref: '#/definitions/RepositoryScm' repositoryName: type: string repositoryBranch: description: Not present in response from addProject. type: string isPrivate: type: boolean isGitHubApp: type: boolean skipBranchesWithoutAppveyorYml: type: boolean enableSecureVariablesInPullRequests: type: boolean enableSecureVariablesInPullRequestsFromSameRepo: type: boolean enableDeploymentInPullRequests: type: boolean saveBuildCacheInPullRequests: type: boolean rollingBuilds: type: boolean rollingBuildsDoNotCancelRunningBuilds: type: boolean rollingBuildsOnlyForPullRequests: type: boolean alwaysBuildClosedPullRequests: type: boolean tags: type: string description: |- Comma-separated list of project tags for dynamic grouping. Appears that any input is accepted. The returned value only contains case-preserving but insensitive unique values where spaces around "," are removed but otherwise preserved. Empty values and items are allowed. nuGetFeed: description: Not present in response from addProject. $ref: '#/definitions/NuGetFeed' securityDescriptor: description: >- Not present in response from addProject. Not always present in response from getProjects (only after updateProject or startBuild?). $ref: '#/definitions/SecurityDescriptor' disablePushWebhooks: type: boolean disablePullRequestWebhooks: type: boolean # Note: requirements tested against PUT /api/projects 2016-12-21 required: - repositoryName ProjectBuildNumberUpdate: type: object properties: nextBuildNumber: type: integer minimum: 0 required: [nextBuildNumber] example: nextBuildNumber: 35 ProjectBuildResults: type: object properties: project: $ref: '#/definitions/Project' build: $ref: '#/definitions/Build' ProjectHistory: type: object properties: project: $ref: '#/definitions/Project' builds: type: array items: $ref: '#/definitions/Build' BuildCloudName: type: string enum: - azure-westus - gce - pro-ubuntu - pro-ubuntu18 - pro-vs2013 # No longer appears in getProjectSettings responses (2018-12-29): - pro-win2016 - pro-vs2017 # No longer appears in getProjectSettings responses (2018-12-29): - ubuntu BuildWorkerImageName: description: >- Defines the available build worker image templates used to provision a virtual machine for a build. Images are updated regularly. "Previous" selects the previous version of an image, for use as a temporary workaround for regressions. `Ubuntu` is the same as `Ubuntu1604`. `Previous Ubuntu` is the same as `Previous Ubuntu1604`. See https://www.appveyor.com/docs/build-environment/#build-worker-images for details. type: string enum: - Previous Ubuntu - Previous Ubuntu1604 - Previous Ubuntu1804 - Previous Visual Studio 2013 - Previous Visual Studio 2015 - Previous Visual Studio 2017 - Ubuntu - Ubuntu1604 - Ubuntu1804 - Visual Studio 2013 - Visual Studio 2015 # No longer appears in getProjectSettings responses (2018-11-17): - Visual Studio 2015 2 - Visual Studio 2017 - Visual Studio 2017 Preview - Visual Studio 2019 Preview - WMF 5 - Windows Server 2019 BuildWorkerImage: type: object properties: buildWorkerImageId: type: integer minimum: 0 name: $ref: '#/definitions/BuildWorkerImageName' buildCloudName: $ref: '#/definitions/BuildCloudName' osType: $ref: '#/definitions/OSType' required: [buildWorkerImageId, name] ScriptLanguage: type: string enum: - cmd - ps - pwsh - sh x-enum-descriptions: - Command Prompt/Batch Script/cmd.exe - PowerShell - PowerShell Core - POSIX shell Script: type: object properties: language: $ref: '#/definitions/ScriptLanguage' script: type: string required: [script] ArtifactType: type: string description: |- Possible values from `Push-AppveyorArtifact` cmdlet `-Type` parameter. The web UI only allows selection of `Auto`, `WebDeployPackage`, and unspecified (which it sends as the empty string but functions like omitting the property) for `updateProject`. Any string can be sent and will be saved/returned, but only these values have a function (as far as I am aware). enum: - Auto - AzureCloudService - AzureCloudServiceConfig - ElasticBeanstalkPackage - File - NuGetPackage - OctopusPackage - SsdtPackage - WebDeployPackage - Zip # Note: Called ArtifactEntry in XML Artifact: type: object properties: path: description: | Path glob of artifact files. Note that updateProject does not require path, but omitting path results in post-build error "Collecting artifacts... Value cannot be null. Parameter name: input" type: string # format: globpath name: title: Deployment name type: string minLength: 0 type: $ref: '#/definitions/ArtifactType' required: [path] ArtifactModel: type: object properties: fileName: type: string name: title: Deployment name type: string type: $ref: '#/definitions/ArtifactType' size: type: integer minimum: 0 created: type: string format: date-time url: description: | This property has not been observed in JSON responses, but is present and nil in XML responses. type: string BuildMode: type: string enum: [msbuild, none, script] DeployMode: type: string enum: [providers, none, script] MSBuildVerbosity: type: string enum: [quiet, minimal, normal, detailed] OSServiceName: type: string enum: - iis - mongodb - msmq - mssql2008r2sp2 - mssql2008r2sp2rs - mssql2012sp1 - mssql2012sp1rs - mssql2014 - mssql2014rs - mssql2016 - mysql - postgresql PlatformName: type: string enum: - ARM - Any CPU - x64 - x86 TestMode: type: string enum: [auto, none, script] StoredValue: type: object properties: isEncrypted: type: boolean value: description: |- Encrypted values can be created using the encryptValue operation. Empty environment variables are represented by missing (null) value rather than an empty string. type: string StoredNameValue: type: object properties: name: type: string minLength: 1 value: $ref: '#/definitions/StoredValue' required: [name, value] StoredNameValueMatrix: type: object properties: variables: $ref: '#/definitions/StoredNameValue' HostEntry: type: object properties: host: type: string minLength: 1 # Note: API doesn't enforce valid hostnames # format: hostname ip: type: string minLength: 1 # Note: API doesn't enforce valid IP address # Can't use anyOf for format: ipv4 or format: ipv6 anyway. # https://github.com/OAI/OpenAPI-Specification/pull/741 required: [host, ip] EncryptRequest: type: object properties: plainValue: # Note: Can send non-string values. # Result is same as sending string equivalent (e.g. "1" vs 1). type: string default: "" example: plainValue: encryptme ProjectBranchesMode: type: string enum: [exclude, include] ProjectConfiguration: type: object properties: doNotIncrementBuildNumberOnPullRequests: type: boolean hotFixScripts: type: array items: $ref: '#/definitions/Script' initScripts: type: array items: $ref: '#/definitions/Script' branchesMode: $ref: '#/definitions/ProjectBranchesMode' includeBranches: type: array items: $ref: '#/definitions/StringValueObject' excludeBranches: type: array items: $ref: '#/definitions/StringValueObject' skipTags: type: boolean skipNonTags: type: boolean skipBranchWithPullRequests: type: boolean skipCommitsFiles: type: array items: $ref: '#/definitions/StringValueObject' onlyCommitsFiles: type: array items: $ref: '#/definitions/StringValueObject' cloneScripts: type: array items: $ref: '#/definitions/Script' onBuildSuccessScripts: type: array items: $ref: '#/definitions/Script' onBuildErrorScripts: type: array items: $ref: '#/definitions/Script' onBuildFinishScripts: type: array items: $ref: '#/definitions/Script' patchAssemblyInfo: type: boolean assemblyInfoFile: type: string assemblyVersionFormat: type: string assemblyFileVersionFormat: type: string assemblyInformationalVersionFormat: type: string patchDotnetCsproj: type: boolean dotnetCsprojFile: type: string dotnetCsprojVersionFormat: type: string dotnetCsprojAssemblyVersionFormat: type: string dotnetCsprojFileVersionFormat: type: string dotnetCsprojInformationalVersionFormat: type: string dotnetCsprojPackageVersionFormat: type: string maxJobs: type: integer minimum: 1 buildCloud: type: array items: $ref: '#/definitions/StringValueObject' operatingSystem: title: Build worker image type: array items: type: object properties: value: $ref: '#/definitions/BuildWorkerImageName' required: [value] services: title: OS services to start during the build process type: array items: type: object properties: value: $ref: '#/definitions/OSServiceName' required: [value] stacks: type: array items: $ref: '#/definitions/UnknownType' maxItems: 0 cloneFolder: type: string shallowClone: type: boolean forceHttpsClone: type: boolean cloneDepth: type: integer minimum: 1 environmentVariables: type: array items: $ref: '#/definitions/StoredNameValue' environmentVariablesMatrix: type: array items: $ref: '#/definitions/StoredNameValueMatrix' installScripts: type: array items: $ref: '#/definitions/Script' hostsEntries: type: array items: $ref: '#/definitions/HostEntry' cacheEntries: type: array items: $ref: '#/definitions/StringValueObject' configureNuGetProjectSource: type: boolean configureNuGetAccountSource: type: boolean disableNuGetPublishOnPullRequests: type: boolean disableNuGetPublishForOctopusPackages: type: boolean buildMode: $ref: '#/definitions/BuildMode' platform: type: array items: type: object properties: value: $ref: '#/definitions/PlatformName' required: [value] configuration: type: array items: $ref: '#/definitions/StringValueObject' msBuildProjectFileName: type: string # format: path packageWebApplicationProjects: type: boolean packageWebApplicationProjectsXCopy: type: boolean packageWebApplicationProjectsBeanstalk: type: boolean packageWebApplicationProjectsOctopus: type: boolean packageAzureCloudServiceProjects: type: boolean packageNuGetProjects: type: boolean packageNuGetSymbols: type: boolean packageAspNetCoreProjects: type: boolean packageDotnetConsoleProjects: type: boolean includeNuGetReferences: type: boolean msBuildInParallel: type: boolean msBuildVerbosity: $ref: '#/definitions/MSBuildVerbosity' buildScripts: description: Only set/used when `buildMode` is `script`. type: array items: $ref: '#/definitions/Script' beforeBuildScripts: type: array items: $ref: '#/definitions/Script' beforePackageScripts: type: array items: $ref: '#/definitions/Script' afterBuildScripts: type: array items: $ref: '#/definitions/Script' testMode: $ref: '#/definitions/TestMode' testAssemblies: type: array items: $ref: '#/definitions/StringValueObject' testCategoriesMode: type: string enum: [exclude, include] testCategories: type: array items: $ref: '#/definitions/StringValueObject' testCategoriesMatrix: type: array items: type: object properties: categories: type: array items: $ref: '#/definitions/StringValueObject' testScripts: description: Only set/used when `testMode` is `script`. type: array items: $ref: '#/definitions/Script' beforeTestScripts: type: array items: $ref: '#/definitions/Script' afterTestScripts: type: array items: $ref: '#/definitions/Script' deployMode: $ref: '#/definitions/DeployMode' deployments: type: array items: $ref: '#/definitions/DeploymentProvider' deployScripts: type: array items: $ref: '#/definitions/Script' beforeDeployScripts: type: array items: $ref: '#/definitions/Script' afterDeployScripts: type: array items: $ref: '#/definitions/Script' xamarinRegisterAndroidProduct: type: boolean xamarinRegisterIosProduct: type: boolean matrixFastFinish: type: boolean matrixAllowFailures: description: >- Although the names and values are not enforced, the combinations which are meaningful are documented at https://www.appveyor.com/docs/build-configuration/#allow-failing-jobs type: array items: $ref: '#/definitions/StoredNameValueMatrix' matrixExclude: type: array items: # Note: Has not been observed in a response. Guess item type. $ref: '#/definitions/StoredNameValueMatrix' matrixOnly: type: array items: # Note: Has not been observed in a response. Guess item type. $ref: '#/definitions/StoredNameValueMatrix' matrixExcept: type: array items: # Note: Has not been observed in a response. Guess item type. $ref: '#/definitions/StoredNameValueMatrix' artifacts: type: array items: $ref: '#/definitions/Artifact' notifications: type: array items: $ref: '#/definitions/NotificationProviderSettings' ProjectWithConfiguration: type: object allOf: - $ref: '#/definitions/Project' - type: object properties: versionFormat: type: string # API returns 400: "Version format must contain {build} variable." pattern: '[{]build[}]' minLength: 7 nextBuildNumber: type: integer # Web UI enforces minimum of 0, REST API does not scheduleCrontabExpression: externalDocs: url: 'https://www.appveyor.com/docs/build-configuration/#scheduled-builds' description: >- Build schedule as an NCrontab Expression. See https://github.com/atifaziz/NCrontab/wiki/Crontab-Expression type: string repositoryAuthentication: $ref: '#/definitions/RepositoryAuthenticationType' repositoryUsername: type: string sshPublicKey: type: string webhookId: type: string webhookUrl: type: string format: uri statusBadgeId: type: string buildPriority: type: integer minimum: 1 ignoreAppveyorYml: type: boolean customYmlName: type: string configuration: $ref: '#/definitions/ProjectConfiguration' # Note: requirements tested against PUT /api/projects 2016-12-21 required: - versionFormat - configuration example: projectId: 43682 accountId: 2 accountName: appvyr builds: [] name: demo-app slug: demo-app-335 versionFormat: 1.0.{build} nextBuildNumber: 1 repositoryType: gitHub repositoryScm: git repositoryName: FeodorFitsner/demo-app repositoryBranch: master webhookId: rca5vb5qqu webhookUrl: https://ci.appveyor.com/api/github/webhook?id=rca5vb5qqu isPrivate: false ignoreAppveyorYml: false skipBranchesWithoutAppveyorYml: false configuration: initScripts: [] includeBranches: [] excludeBranches: [] onBuildSuccessScripts: [] onBuildErrorScripts: [] patchAssemblyInfo: false assemblyInfoFile: '**\AssemblyInfo.*' assemblyVersionFormat: '{version}' assemblyFileVersionFormat: '{version}' assemblyInformationalVersionFormat: '{version}' operatingSystem: [] services: [] shallowClone: false environmentVariables: [] environmentVariablesMatrix: [] installScripts: [] hostsEntries: [] buildMode: msbuild platform: [] configuration: [] packageWebApplicationProjects: false packageWebApplicationProjectsXCopy: false packageAzureCloudServiceProjects: false packageNuGetProjects: false msBuildVerbosity: minimal buildScripts: [] beforeBuildScripts: [] afterBuildScripts: [] testMode: auto testAssemblies: [] testCategories: [] testCategoriesMatrix: [] testScripts: [] beforeTestScripts: [] afterTestScripts: [] deployMode: providers deployments: [] deployScripts: [] beforeDeployScripts: [] afterDeployScripts: [] matrixFastFinish: false matrixAllowFailures: [] artifacts: [] notifications: [] nuGetFeed: id: demo-app-tw5iw2wk3bl1 name: Project demo-app publishingEnabled: false created: '2014-08-16T00:52:16.9886427+00:00' securityDescriptor: accessRightDefinitions: - name: View description: View - name: RunBuild description: Run build - name: Update description: Update settings - name: Delete description: Delete project roleAces: - roleId: 4 name: Administrator isAdmin: true accessRights: - name: View allowed: true - name: RunBuild allowed: true - name: Update allowed: true - name: Delete allowed: true - roleId: 5 name: User isAdmin: false accessRights: - name: View - name: RunBuild - name: Update - name: Delete created: '2014-08-16T00:52:15.6604826+00:00' ProjectSettingsResults: type: object properties: project: $ref: '#/definitions/Project' settings: $ref: '#/definitions/ProjectWithConfiguration' images: type: array items: $ref: '#/definitions/BuildWorkerImage' buildClouds: type: array items: $ref: '#/definitions/StringValueObject' defaultImageName: type: string example: version: 1.0.{build} build: project: MySolution.sln verbosity: minimal publish_wap: true ### Projects and Builds }}} ### {{{ Environments and Deployments HttpMethodRestricted: type: string enum: [GET, POST] ### {{{ Deployment Settings DeploymentProviderType: type: string enum: - Agent - AzureBlob - AzureCS - AzureWebJob - BinTray - FTP - GitHub - NuGet - S3 - SqlDatabase - WebDeploy - Webhook DeploymentProvider: type: object properties: provider: $ref: '#/definitions/DeploymentProviderType' providerSettings: type: array items: $ref: '#/definitions/StoredNameValue' onBranch: type: array # The web UI only displays a single branch. Max length? items: $ref: '#/definitions/StringValueObject' onEnvironmentVariables: type: array items: $ref: '#/definitions/StoredNameValue' required: [provider] DeploymentEnvironmentSettings: type: object properties: providerSettings: type: array items: $ref: '#/definitions/StoredNameValue' environmentVariables: type: array items: $ref: '#/definitions/StoredNameValue' notifications: type: array items: $ref: '#/definitions/NotificationProviderSettings' DeploymentEnvironmentAddition: type: object properties: name: type: string provider: $ref: '#/definitions/DeploymentProviderType' settings: $ref: '#/definitions/DeploymentEnvironmentSettings' required: [name, provider, settings] example: name: production provider: FTP settings: providerSettings: - name: server value: value: ftp.myserver.com isEncrypted: false - name: username value: value: ftp-user isEncrypted: false - name: password value: value: password isEncrypted: true environmentVariables: - name: my-var value: value: '123' isEncrypted: false DeploymentEnvironmentLookupModel: type: object properties: deploymentEnvironmentId: type: integer minimum: 0 name: type: string provider: $ref: '#/definitions/DeploymentProviderType' DeploymentProjectSelectionMode: description: Project selection mode for deployment environments. type: integer enum: - 0 - 1 - 2 x-enum-varnames: - Any - Only Selected - All Except Selected x-enum-descriptions: - Any project can be deployed to the environment. - Only selected projects can be deployed to the environment. - All projects except the selected projects can be deployed to the environment. DeploymentEnvironment: allOf: - $ref: '#/definitions/DeploymentEnvironmentLookupModel' - $ref: '#/definitions/Timestamped' - type: object properties: accountId: type: integer projectsMode: $ref: '#/definitions/DeploymentProjectSelectionMode' securityDescriptor: $ref: '#/definitions/SecurityDescriptor' tags: description: |- Comma-separated list of environment tags for dynamic grouping. Appears that any input is accepted. The returned value only contains case-preserving but insensitive unique values where spaces around "," are removed but otherwise preserved. Empty values and items are allowed. type: string DeploymentEnvironmentProject: type: object properties: projectId: type: integer minimum: 0 name: type: string isSelected: type: boolean required: [projectId, name, isSelected] DeploymentEnvironmentWithSettings: allOf: - $ref: '#/definitions/DeploymentEnvironment' - type: object properties: environmentAccessKey: type: string settings: $ref: '#/definitions/DeploymentEnvironmentSettings' selectedProjects: description: Project IDs of selected projects type: array items: type: integer minimum: 1 projects: description: | Projects available for selection in UI. Only present in response from getEnvironmentSettings. type: array items: $ref: '#/definitions/DeploymentEnvironmentProject' example: deploymentEnvironmentId: 3018 name: production environmentAccessKey: gi3ttevuk7123 settings: providerSettings: - name: server value: isEncrypted: false value: ftp.myserver.com - name: username value: isEncrypted: false value: ftp-user - name: password value: isEncrypted: true value: password environmentVariables: - name: my-var value: isEncrypted: false value: '123' provider: FTP DeploymentEnvironmentSettingsResults: type: object properties: environment: $ref: '#/definitions/DeploymentEnvironmentWithSettings' DeploymentStartRequest: type: object properties: environmentName: type: string minLength: 1 accountName: type: string minLength: 1 projectSlug: type: string minLength: 1 buildVersion: description: Build to deploy type: string minLength: 1 buildJobId: description: >- Optional job id with artifacts if build contains multiple jobs. type: string environmentVariables: type: object additionalProperties: type: string required: [environmentName, accountName, projectSlug, buildVersion] example: environmentName: environment-to-deploy accountName: your-account-name projectSlug: project-slug-from-url buildVersion: 1.2.0 buildJobId: sfke9239ydzf environmentVariables: server: myserver.com another_var: another value DeploymentJob: allOf: - $ref: '#/definitions/Job' - type: object properties: messagesCount: type: integer minimum: 0 DeploymentLookupModel: type: object properties: deploymentId: type: integer minimum: 0 build: $ref: '#/definitions/BuildLookupModel' status: $ref: '#/definitions/Status' started: type: string format: date-time finished: type: string format: date-time Deployment: allOf: - $ref: '#/definitions/DeploymentLookupModel' - $ref: '#/definitions/Timestamped' - type: object properties: build: $ref: '#/definitions/Build' environment: $ref: '#/definitions/DeploymentEnvironment' jobs: type: array items: $ref: '#/definitions/DeploymentJob' DeploymentCancellation: type: object properties: deploymentId: type: integer minimum: 0 required: [deploymentId] example: deploymentId: 123 ProjectDeployment: type: object properties: project: $ref: '#/definitions/Project' deployment: $ref: '#/definitions/Deployment' required: [project, deployment] ProjectDeploymentModel: allOf: - $ref: '#/definitions/DeploymentLookupModel' - type: object properties: environment: $ref: '#/definitions/DeploymentEnvironmentLookupModel' ProjectDeploymentsResults: type: object properties: project: $ref: '#/definitions/Project' deployments: type: array items: $ref: '#/definitions/ProjectDeploymentModel' EnvironmentDeploymentModel: allOf: - $ref: '#/definitions/DeploymentLookupModel' - type: object properties: project: $ref: '#/definitions/ProjectLookupModel' DeploymentEnvironmentDeploymentsResults: type: object properties: environment: $ref: '#/definitions/DeploymentEnvironment' deployments: type: array items: $ref: '#/definitions/EnvironmentDeploymentModel' required: [environment, deployments] # Deployment Settings }}} NotificationProviderType: type: string enum: - Campfire - Email - GitHubPullRequest - HipChat - Slack - Webhook - VSOTeamRoom NotificationSettingsType: type: string enum: - 'Appveyor.Models.CampfireNotificationSettings, Appveyor.Models' - 'Appveyor.Models.EmailNotificationSettings, Appveyor.Models' - 'Appveyor.Models.GitHubPullRequestNotificationSettings, Appveyor.Models' - 'Appveyor.Models.HipChatNotificationSettings, Appveyor.Models' - 'Appveyor.Models.SlackNotificationSettings, Appveyor.Models' - 'Appveyor.Models.WebhookNotificationSettings, Appveyor.Models' - 'Appveyor.Models.VSOTeamRoomNotificationSettings, Appveyor.Models' NotificationSettings: description: | This type is the union of the settings types for each of the various notification types supported by the API. The properties correspond to the following notification types: #### All Types - onBuildSuccess - onBuildFailure - onBuildStatusChanged #### Campfire - account - authToken - room - template #### Email - subjectTemplate - bodyTemplate - recipients - recipientsValue #### GitHubPullRequest - authToken - template #### HipChat - authToken - from - room - template - serverUrl #### Slack - incomingWebhookUrl - authToken - channel - template #### Webhook - method - url - headers - headersValue - addCustomRequestBody - customRequestBodyContentType - customRequestBody #### VSOTeamRoom - vsoAccount - username - password - room - template type: object properties: $type: $ref: '#/definitions/NotificationSettingsType' onBuildSuccess: type: boolean onBuildFailure: type: boolean onBuildStatusChanged: type: boolean # Campfire account: type: string authToken: $ref: '#/definitions/StoredValue' room: type: string template: type: string # Email subjectTemplate: type: string bodyTemplate: type: string recipients: type: array items: $ref: '#/definitions/StringValueObject' recipientsValue: type: string # GitHubPullRequest #authToken: # $ref: '#/definitions/StoredValue' #template: # type: string # HipChat #authToken: # $ref: '#/definitions/StoredValue' from: type: string #room: # type: string #template: # type: string serverUrl: type: string format: uri # Slack incomingWebhookUrl: type: string format: uri #authToken: # $ref: '#/definitions/StoredValue' channel: type: string #template: # type: string # Webhook method: $ref: '#/definitions/HttpMethodRestricted' url: type: string format: uri headers: type: array items: $ref: '#/definitions/StoredNameValue' headersValue: type: string addCustomRequestBody: type: boolean customRequestBodyContentType: type: string # Format not enforced by server, all strings permitted #format: media-type customRequestBody: type: string # VSOTeamRoom vsoAccount: type: string username: type: string password: $ref: '#/definitions/StoredValue' #room: # type: string #template: # type: string NotificationProviderSettings: type: object properties: provider: $ref: '#/definitions/NotificationProviderType' settings: $ref: '#/definitions/NotificationSettings' required: [provider, settings] ### Environments and Deployments }}} responses: Error: description: Error schema: $ref: '#/definitions/Error' # Describe your paths here paths: ### {{{ User /users: get: tags: - User operationId: getUsers summary: Get users externalDocs: url: 'https://www.appveyor.com/docs/api/team/#get-users' responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: array items: $ref: '#/definitions/UserAccount' examples: application/json: - accountId: 2 accountName: FeodorFitsner isOwner: false isCollaborator: false userId: 2019 fullName: NuGet email: nuget@appveyor.com roleId: 5 roleName: User successfulBuildNotification: all failedBuildNotification: all notifyWhenBuildStatusChangedOnly: true created: '2014-02-12T19:21:15.0618564+00:00' updated: '2014-03-06T22:47:44.9706252+00:00' put: tags: - User operationId: updateUser summary: Update user externalDocs: url: 'https://www.appveyor.com/docs/api/team/#update-user' parameters: - name: body in: body required: true schema: $ref: '#/definitions/UserAccount' responses: default: $ref: '#/responses/Error' '204': description: Success /users/{userId}: parameters: - $ref: '#/parameters/userId' get: tags: - User operationId: getUser summary: Get user externalDocs: url: 'https://www.appveyor.com/docs/api/team/#get-user' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/UserAccountRolesResults' examples: application/json: user: accountId: 2 accountName: FeodorFitsner isOwner: false isCollaborator: false userId: 2019 fullName: NuGet email: nuget@appveyor.com roleId: 5 roleName: User successfulBuildNotification: all failedBuildNotification: all notifyWhenBuildStatusChangedOnly: true created: '2014-02-12T19:21:15.0618564+00:00' updated: '2014-03-06T22:47:44.9706252+00:00' roles: - roleId: 4 name: Administrator isSystem: true created: '2013-09-26T19:23:39.3615105+00:00' - roleId: 5 name: User isSystem: true created: '2013-09-26T19:23:39.3645117+00:00' delete: tags: - User operationId: deleteUser summary: Delete user externalDocs: url: 'https://www.appveyor.com/docs/api/team/#delete-user' responses: default: $ref: '#/responses/Error' '204': description: Success /users/invitations: get: tags: - User operationId: getUserInvitations summary: Get user invitations responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: array items: $ref: '#/definitions/UserInvitationModel' examples: application/json: - userInvitationId: 6i9w9rcp5us7lxnbdo63 email: nuget@appveyor.com roleId: 5 roleName: User accountId: 2 accountName: FeodorFitsner created: '2019-03-20T16:22:50.2504181+00:00' post: tags: - User operationId: inviteUser summary: Invite user parameters: - name: body in: body required: true schema: $ref: '#/definitions/InviteUserRequest' responses: default: $ref: '#/responses/Error' '204': description: Success /users/invitations/{userInvitationId}: parameters: - $ref: '#/parameters/userInvitationId' delete: tags: - User operationId: cancelUserInvitation summary: Cancel user invitation responses: default: $ref: '#/responses/Error' '204': description: Success /user/join-account: put: tags: - User operationId: joinAccount summary: Join Account parameters: - name: body in: body required: true schema: $ref: '#/definitions/JoinAccountRequest' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/SessionModel' examples: application/json: setupRequired: false twoFactorAuthRequired: false user: userId: 2019 email: nuget@appveyor.com gravatarHash: 142e1aa89b96190de9f4ce6569ebb421 gitHubUsername: nuget twoFactorAuthEnabled: false fullName: NuGet pageSize: 10 created: '2016-09-09T23:01:29.941128+00:00' updated: '2017-01-03T02:06:50.0238036+00:00' accounts: - isOwner: false isCollaborator: true roleId: 5 roleName: User permissions: [] accountId: 2 name: NuGet planId: free planStart: '2016-09-09T23:01:29.941128+00:00' planStatus: active gitHubPlan: false unpaid: false unverified: false blocked: false manualPayments: false featureFlags: distv2 allowCustomBuildEnvironment: false isEnterprisePlan: false created: '2016-12-30T05:00:43.038419+00:00' updated: '2017-01-01T21:21:10.1292694+00:00' - isOwner: true isCollaborator: false roleId: 4 roleName: Administrator permissions: - ManageProjects - UpdateProjectSettings - RunProjectBuild - ManageEnvironments - UpdateEnvironmentSettings - DeployToEnvironment - ConfigureBuildEnvironment - UpdateAccountDetails - UpdateBillingDetails - ManageApplicationAuthorizations - AddUser - UpdateUserDetails - DeleteUser - AddRole - UpdateRoleDetails - DeleteRole accountId: 2 name: nuget planId: free planStart: '2016-09-09T23:01:29.941128+00:00' planStatus: active gitHubPlan: false unpaid: false unverified: false blocked: false manualPayments: false featureFlags: distv2 allowCustomBuildEnvironment: false isEnterprisePlan: false created: '2016-09-09T23:01:29.941128+00:00' updated: '2016-09-21T00:08:35.0728561+00:00' ### User }}} ### {{{ Collaborator /collaborators: get: tags: - Collaborator operationId: getCollaborators summary: Get collaborators externalDocs: url: 'https://www.appveyor.com/docs/api/team/#get-collaborators' responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: array items: $ref: '#/definitions/UserAccount' examples: application/json: - accountId: 2 accountName: FeodorFitsner isOwner: false isCollaborator: true userId: 2018 fullName: John Smith email: john@smith.com roleId: 3040 roleName: My Role successfulBuildNotification: all failedBuildNotification: all notifyWhenBuildStatusChangedOnly: true created: '2014-02-03T20:29:26.6807307+00:00' updated: '2014-03-07T04:26:09.1051534+00:00' put: tags: - Collaborator operationId: updateCollaborator summary: Update collaborator externalDocs: url: 'https://www.appveyor.com/docs/api/team/#update-collaborator' parameters: - name: body in: body required: true schema: $ref: '#/definitions/CollaboratorUpdate' responses: default: $ref: '#/responses/Error' '204': description: Success /collaborators/{userId}: parameters: - $ref: '#/parameters/userId' get: tags: - Collaborator operationId: getCollaborator summary: Get collaborator externalDocs: url: 'https://www.appveyor.com/docs/api/team/#get-collaborator' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/UserAccountRolesResults' examples: application/json: user: accountId: 2 accountName: FeodorFitsner isOwner: false isCollaborator: true userId: 2018 fullName: John Smith email: john@smith.com roleId: 3040 roleName: My Role successfulBuildNotification: all failedBuildNotification: all notifyWhenBuildStatusChangedOnly: true created: '2014-02-03T20:29:26.6807307+00:00' updated: '2014-03-07T04:26:09.1051534+00:00' roles: - roleId: 4 name: Administrator isSystem: true created: '2013-09-26T19:23:39.3615105+00:00' - roleId: 5 name: User isSystem: true created: '2013-09-26T19:23:39.3645117+00:00' - roleId: 3040 name: My Role isSystem: false created: '2014-03-18T20:12:08.4749886+00:00' updated: '2014-03-18T20:16:06.8803375+00:00' delete: tags: - Collaborator operationId: deleteCollaborator summary: Delete collaborator externalDocs: url: 'https://www.appveyor.com/docs/api/team/#delete-collaborator' responses: default: $ref: '#/responses/Error' '204': description: Success ### Collaborator }}} ### {{{ Role /roles: get: tags: - Role operationId: getRoles summary: Get roles externalDocs: url: 'https://www.appveyor.com/docs/api/team/#get-roles' responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: array items: $ref: '#/definitions/Role' examples: application/json: - roleId: 4 name: Administrator isSystem: true created: '2013-09-26T19:23:39.3615105+00:00' - roleId: 5 name: User isSystem: true created: '2013-09-26T19:23:39.3645117+00:00' post: tags: - Role operationId: addRole summary: Add role externalDocs: url: 'https://www.appveyor.com/docs/api/team/#add-role' parameters: - name: body in: body required: true schema: $ref: '#/definitions/RoleAddition' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/RoleWithGroups' put: tags: - Role operationId: updateRole summary: Update role externalDocs: url: 'https://www.appveyor.com/docs/api/team/#update-role' parameters: - name: body in: body required: true schema: $ref: '#/definitions/RoleWithGroups' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/RoleWithGroups' /roles/{roleId}: parameters: - $ref: '#/parameters/roleId' get: tags: - Role operationId: getRole summary: Get role externalDocs: url: 'https://www.appveyor.com/docs/api/team/#get-role' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/RoleWithGroups' examples: application/json: roleId: 3040 name: My Role isSystem: false created: '2014-03-18T20:12:08.4749886+00:00' groups: - name: Projects permissions: - name: ManageProjects description: Create, delete projects, update project settings allowed: false - name: UpdateProjectSettings description: Update project settings allowed: false - name: RunProjectBuild description: Run project builds allowed: false - name: DeleteProjectBuilds description: Delete project builds allowed: false - name: Environments permissions: - name: ManageEnvironments description: Create, delete projects, update environment settings allowed: false - name: UpdateEnvironmentSettings description: Update environment settings allowed: false - name: DeployToEnvironment description: Deploy to environment allowed: false - name: Account permissions: - name: UpdateAccountDetails description: Update account details allowed: false - name: Users permissions: - name: AddUser description: Add new user allowed: false - name: UpdateUserDetails description: Update user details allowed: false - name: DeleteUser description: Delete user allowed: false - name: Roles permissions: - name: AddRole description: Add new role allowed: false - name: UpdateRoleDetails description: Update role details allowed: false - name: DeleteRole description: Delete role allowed: false - name: User permissions: - name: ConfigureApiKeys description: Generate API keys allowed: false delete: tags: - Role operationId: deleteRole summary: Delete role externalDocs: url: 'https://www.appveyor.com/docs/api/team/#delete-role' responses: default: $ref: '#/responses/Error' '204': description: Success ### Role }}} ### {{{ Project /account/encrypt: post: # This operation is not documented anywhere, but is discussed publicly in # http://help.appveyor.com/discussions/questions/1892-encryption-through-api # https://github.com/appveyor/ci/issues/665 tags: - Project operationId: encryptValue summary: Encrypt a value for use in StoredValue. parameters: - name: body in: body required: true schema: $ref: '#/definitions/EncryptRequest' produces: - text/plain responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: string # Could add format: byte since data is base64 encoded. # Avoided since primary use is as string in StoredValue, not byte[]. examples: text/plain: wsnoY4v1v1Uofj0xf8E6FA== /projects: get: tags: - Project operationId: getProjects summary: Get projects externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#get-projects' responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: array items: $ref: '#/definitions/Project' examples: application/json: - projectId: 19096 accountId: 2 accountName: FeodorFitsner builds: - buildId: 23864 jobs: [] buildNumber: 3 version: 1.0.3 message: replaced with command [skip ci] branch: master commitId: c2892a70d60c96c1b65a7c665ab806b7731fea8a authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-08-15T22:05:54+00:00' messages: [] status: success started: '2014-08-15T22:36:38.1757886+00:00' finished: '2014-08-15T22:37:00.6171479+00:00' created: '2014-08-15T22:33:15.9833328+00:00' updated: '2014-08-15T22:37:00.6171479+00:00' name: appveyor-artifact-test slug: appveyor-artifact-test repositoryType: gitHub repositoryScm: git repositoryName: FeodorFitsner/appveyor-artifact-test repositoryBranch: master isPrivate: false skipBranchesWithoutAppveyorYml: false nuGetFeed: id: appveyor-artifact-test-j8kk0o name: Project appveyor-artifact-test publishingEnabled: false created: '2014-08-15T22:04:21.3111546+00:00' created: '2014-08-15T22:04:19.2868375+00:00' post: tags: - Project operationId: addProject summary: Add project externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#add-project' parameters: - name: body in: body required: true schema: $ref: '#/definitions/ProjectAddition' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/Project' examples: application/json: projectId: 43682 accountId: 2 accountName: appvyr builds: [] name: demo-app slug: demo-app-335 repositoryType: gitHub repositoryScm: git repositoryName: FeodorFitsner/demo-app isPrivate: false skipBranchesWithoutAppveyorYml: false created: '2014-08-16T00:52:15.6604826+00:00' put: tags: - Project operationId: updateProject summary: Update project externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#update-project' parameters: - name: body in: body required: true schema: $ref: '#/definitions/ProjectWithConfiguration' responses: default: $ref: '#/responses/Error' '204': description: Success /projects/{accountName}/{projectSlug}: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' get: tags: - Project operationId: getProjectLastBuild summary: Get project last build externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#get-project-last-build' security: [] responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/ProjectBuildResults' examples: application/json: project: projectId: 38907 accountId: 2 accountName: appvyr builds: [] name: nuget-test slug: nuget-test repositoryType: gitHub repositoryScm: git repositoryName: FeodorFitsner/nuget-test repositoryBranch: master isPrivate: false skipBranchesWithoutAppveyorYml: false nuGetFeed: id: nuget-test-23spw2w name: Project nuget-test publishingEnabled: false created: '2014-07-19T10:23:05.5160273+00:00' securityDescriptor: {} created: '2014-07-19T10:23:03.8005134+00:00' updated: '2014-08-01T05:25:15.4119745+00:00' build: buildId: 134173 jobs: - jobId: 9r2qufuu8 name: '' allowFailure: false messagesCount: 0 compilationMessagesCount: 0 compilationErrorsCount: 0 compilationWarningsCount: 0 testsCount: 0 passedTestsCount: 0 failedTestsCount: 0 artifactsCount: 0 status: success started: '2014-08-14T05:41:49.1061831+00:00' finished: '2014-08-14T05:42:45.1102797+00:00' created: '2014-08-14T05:39:27.3902557+00:00' updated: '2014-08-14T05:42:45.477213+00:00' buildNumber: 45 version: 1.0.45 message: AssemblyInfo patching branch: master commitId: 85da1fb810ae89744abad83e75c13483dd740258 authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-07-03T07:56:15+00:00' messages: [] status: success started: '2014-08-14T05:41:49.1686804+00:00' finished: '2014-08-14T05:42:45.5709599+00:00' created: '2014-08-14T05:39:26.2946368+00:00' updated: '2014-08-14T05:42:45.5709599+00:00' delete: tags: - Project operationId: deleteProject summary: Delete project externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#delete-project' responses: default: $ref: '#/responses/Error' '204': description: Success /projects/{accountName}/{projectSlug}/branch/{buildBranch}: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' - $ref: '#/parameters/buildBranch' get: tags: - Project operationId: getProjectLastBuildBranch summary: Get project last branch build externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#get-project-last-branch-build' security: [] responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/ProjectBuildResults' # FIXME: Same example as /api/projects/{accountName}/{projectSlug} examples: application/json: project: projectId: 38907 accountId: 2 accountName: appvyr builds: [] name: nuget-test slug: nuget-test repositoryType: gitHub repositoryScm: git repositoryName: FeodorFitsner/nuget-test repositoryBranch: master isPrivate: false skipBranchesWithoutAppveyorYml: false nuGetFeed: id: nuget-test-23spw2w name: Project nuget-test publishingEnabled: false created: '2014-07-19T10:23:05.5160273+00:00' securityDescriptor: {} created: '2014-07-19T10:23:03.8005134+00:00' updated: '2014-08-01T05:25:15.4119745+00:00' build: buildId: 134173 jobs: - jobId: 9r2qufuu8 name: '' allowFailure: false messagesCount: 0 compilationMessagesCount: 0 compilationErrorsCount: 0 compilationWarningsCount: 0 testsCount: 0 passedTestsCount: 0 failedTestsCount: 0 artifactsCount: 0 status: success started: '2014-08-14T05:41:49.1061831+00:00' finished: '2014-08-14T05:42:45.1102797+00:00' created: '2014-08-14T05:39:27.3902557+00:00' updated: '2014-08-14T05:42:45.477213+00:00' buildNumber: 45 version: 1.0.45 message: AssemblyInfo patching branch: master commitId: 85da1fb810ae89744abad83e75c13483dd740258 authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-07-03T07:56:15+00:00' messages: [] status: success started: '2014-08-14T05:41:49.1686804+00:00' finished: '2014-08-14T05:42:45.5709599+00:00' created: '2014-08-14T05:39:26.2946368+00:00' updated: '2014-08-14T05:42:45.5709599+00:00' /projects/{accountName}/{projectSlug}/build/{buildVersion}: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' - $ref: '#/parameters/buildVersion' get: tags: - Project operationId: getProjectBuildByVersion summary: Get project build by version externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#get-project-build-by-version' security: [] responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/ProjectBuildResults' # FIXME: Same example as /api/projects/{accountName}/{projectSlug} examples: application/json: project: projectId: 38907 accountId: 2 accountName: appvyr builds: [] name: nuget-test slug: nuget-test repositoryType: gitHub repositoryScm: git repositoryName: FeodorFitsner/nuget-test repositoryBranch: master isPrivate: false skipBranchesWithoutAppveyorYml: false nuGetFeed: id: nuget-test-23spw2w name: Project nuget-test publishingEnabled: false created: '2014-07-19T10:23:05.5160273+00:00' securityDescriptor: {} created: '2014-07-19T10:23:03.8005134+00:00' updated: '2014-08-01T05:25:15.4119745+00:00' build: buildId: 134173 jobs: - jobId: 9r2qufuu8 name: '' allowFailure: false messagesCount: 0 compilationMessagesCount: 0 compilationErrorsCount: 0 compilationWarningsCount: 0 testsCount: 0 passedTestsCount: 0 failedTestsCount: 0 artifactsCount: 0 status: success started: '2014-08-14T05:41:49.1061831+00:00' finished: '2014-08-14T05:42:45.1102797+00:00' created: '2014-08-14T05:39:27.3902557+00:00' updated: '2014-08-14T05:42:45.477213+00:00' buildNumber: 45 version: 1.0.45 message: AssemblyInfo patching branch: master commitId: 85da1fb810ae89744abad83e75c13483dd740258 authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-07-03T07:56:15+00:00' messages: [] status: success started: '2014-08-14T05:41:49.1686804+00:00' finished: '2014-08-14T05:42:45.5709599+00:00' created: '2014-08-14T05:39:26.2946368+00:00' updated: '2014-08-14T05:42:45.5709599+00:00' /projects/{accountName}/{projectSlug}/history: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' get: tags: - Project operationId: getProjectHistory summary: Get project history externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#get-project-history' security: [] parameters: - $ref: '#/parameters/recordsNumber' - $ref: '#/parameters/startBuildId' - $ref: '#/parameters/branch' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/ProjectHistory' examples: application/json: project: projectId: 42438 accountId: 2 accountName: appvyr builds: [] name: wix-test slug: wix-test repositoryType: gitHub repositoryScm: git repositoryName: FeodorFitsner/wix-test isPrivate: false skipBranchesWithoutAppveyorYml: false created: '2014-08-09T00:30:43.3327131+00:00' builds: - buildId: 134174 jobs: [] buildNumber: 5 version: 1.0.5 message: Enabled diag mode branch: master commitId: d19740243e3ec5497345de0f7d828e66a7cd1a6b authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-08-10T14:08:16+00:00' messages: [] status: success started: '2014-08-14T05:42:17.2696755+00:00' finished: '2014-08-14T05:43:47.4732355+00:00' created: '2014-08-14T05:39:30.8845902+00:00' updated: '2014-08-14T05:43:47.4732355+00:00' - buildId: 129289 jobs: [] buildNumber: 3 version: 1.0.3 message: Added appveyor.yml branch: master commitId: 28c6eec932c0e21eca5bb5571a722f850aa8bf6f authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-08-09T00:33:34+00:00' messages: [] status: success started: '2014-08-09T15:42:45.7878479+00:00' finished: '2014-08-09T15:44:15.5828009+00:00' created: '2014-08-09T15:42:38.8315273+00:00' updated: '2014-08-09T15:44:15.5828009+00:00' /projects/{accountName}/{projectSlug}/artifacts/{artifactFileName}: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' - $ref: '#/parameters/artifactFileName' - $ref: '#/parameters/branch' - $ref: '#/parameters/tag' - $ref: '#/parameters/job' - $ref: '#/parameters/all' - $ref: '#/parameters/pr' get: tags: - Project operationId: getProjectArtifact summary: Get last successful build artifact description: |- The `job` parameter is mandatory if the build contains multiple jobs. externalDocs: url: 'https://www.appveyor.com/docs/packaging-artifacts/#permalink-to-the-last-successful-build-artifact' security: [] produces: # Note: API does not currently guess artifact content type. # All are sent as application/octet-stream - application/octet-stream responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: file /projects/{accountName}/{projectSlug}/deployments: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' - $ref: '#/parameters/recordsNumber' get: tags: - Project operationId: getProjectDeployments summary: Get project deployments externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#get-project-deployments' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/ProjectDeploymentsResults' examples: application/json: project: projectId: 22321 accountId: 2 accountName: appvyr builds: [] name: simple-web slug: simple-web repositoryType: gitHub repositoryScm: git repositoryName: AppVeyor/simple-web isPrivate: false skipBranchesWithoutAppveyorYml: false securityDescriptor: {} created: '2014-05-08T18:38:57.9163293+00:00' updated: '2014-07-14T10:16:26.9351867+00:00' deployments: - environment: deploymentEnvironmentId: 27 name: agent test provider: Agent created: '2014-04-01T17:56:41.30982+00:00' updated: '2014-08-12T22:35:51.9723883+00:00' deployment: deploymentId: 19475 build: buildId: 132746 jobs: [] buildNumber: 38 version: 1.0.38 message: Removed Start-Website branch: master commitId: c397ba5d17dd17b994375405f560e4922207da1e authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-08-12T22:56:00+00:00' messages: [] status: success started: '2014-08-12T22:56:25.8575967+00:00' finished: '2014-08-12T22:58:05.7595508+00:00' created: '2014-08-12T22:56:09.9208493+00:00' updated: '2014-08-12T22:58:05.7595508+00:00' environment: deploymentEnvironmentId: 27 name: agent test provider: Agent created: '2014-04-01T17:56:41.30982+00:00' updated: '2014-08-12T22:35:51.9723883+00:00' jobs: - jobId: jnpbcc77s4w278e4 name: Deployment messagesCount: 0 status: success started: '2014-08-12T23:06:10.8776088+00:00' finished: '2014-08-12T23:06:24.3361102+00:00' created: '2014-08-12T23:06:07.9009315+00:00' updated: '2014-08-12T23:06:24.9390847+00:00' - jobId: nbgyf7pn65d4agyr name: TEST-AGENT-DEPL messagesCount: 0 status: success started: '2014-08-12T23:06:14.8148958+00:00' finished: '2014-08-12T23:06:21.9647266+00:00' created: '2014-08-12T23:06:14.8148958+00:00' updated: '2014-08-12T23:06:22.3768791+00:00' status: success started: '2014-08-12T23:06:10.8776088+00:00' finished: '2014-08-12T23:06:25.0502019+00:00' created: '2014-08-12T23:06:07.9009315+00:00' updated: '2014-08-12T23:06:25.0502019+00:00' /projects/{accountName}/{projectSlug}/settings: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' get: tags: - Project operationId: getProjectSettings summary: Get project settings externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#get-project-settings' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/ProjectSettingsResults' examples: application/json: project: projectId: 22321 accountId: 2 accountName: appvyr builds: [] name: simple-web slug: simple-web repositoryType: gitHub repositoryScm: git repositoryName: AppVeyor/simple-web isPrivate: false skipBranchesWithoutAppveyorYml: false securityDescriptor: accessRightDefinitions: - name: View description: View - name: RunBuild description: Run build - name: Update description: Update settings - name: Delete description: Delete project roleAces: - roleId: 4 name: Administrator isAdmin: true accessRights: - name: View allowed: true - name: RunBuild allowed: true - name: Update allowed: true - name: Delete allowed: true - roleId: 5 name: User isAdmin: false accessRights: - name: View - name: RunBuild - name: Update - name: Delete created: '2014-05-08T18:38:57.9163293+00:00' updated: '2014-07-14T10:16:26.9351867+00:00' settings: projectId: 22321 accountId: 2 accountName: appvyr builds: [] name: simple-web slug: simple-web versionFormat: 1.0.{build} nextBuildNumber: 41 repositoryType: gitHub repositoryScm: git repositoryName: AppVeyor/simple-web repositoryBranch: master webhookId: k783di7br webhookUrl: https://ci.appveyor.com/api/github/webhook?id=k783di7br isPrivate: false ignoreAppveyorYml: false skipBranchesWithoutAppveyorYml: false configuration: initScripts: [] includeBranches: [] excludeBranches: [] onBuildSuccessScripts: [] onBuildErrorScripts: [] patchAssemblyInfo: false assemblyInfoFile: '**\AssemblyInfo.*' assemblyVersionFormat: '{version}' assemblyFileVersionFormat: '{version}' assemblyInformationalVersionFormat: '{version}' operatingSystem: [] services: [] shallowClone: false environmentVariables: [] environmentVariablesMatrix: [] installScripts: [] hostsEntries: [] buildMode: msbuild platform: [] configuration: [] packageWebApplicationProjects: false packageWebApplicationProjectsXCopy: false packageAzureCloudServiceProjects: false packageNuGetProjects: false msBuildVerbosity: minimal buildScripts: [] beforeBuildScripts: [] afterBuildScripts: [] testMode: auto testAssemblies: [] testCategories: [] testCategoriesMatrix: [] testScripts: [] beforeTestScripts: [] afterTestScripts: [] deployMode: providers deployments: [] deployScripts: [] beforeDeployScripts: [] afterDeployScripts: [] matrixFastFinish: false matrixAllowFailures: [] artifacts: [] notifications: [] nuGetFeed: id: simple-web-0r50wgb1st6q name: Project simple-web publishingEnabled: false created: '2014-05-08T18:38:59.2455842+00:00' securityDescriptor: accessRightDefinitions: - name: View description: View - name: RunBuild description: Run build - name: Update description: Update settings - name: Delete description: Delete project roleAces: - roleId: 4 name: Administrator isAdmin: true accessRights: - name: View allowed: true - name: RunBuild allowed: true - name: Update allowed: true - name: Delete allowed: true - roleId: 5 name: User isAdmin: false accessRights: - name: View - name: RunBuild - name: Update - name: Delete created: '2014-05-08T18:38:57.9163293+00:00' updated: '2014-07-14T10:16:26.9351867+00:00' images: - name: test-win2012-r2 - name: Windows Server 2012 - name: Windows Server 2012 R2 /projects/{accountName}/{projectSlug}/settings/yaml: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' get: tags: - Project operationId: getProjectSettingsYaml summary: Get project settings in YAML externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#get-project-settings-in-yaml' produces: - text/plain responses: default: $ref: '#/responses/Error' '200': description: | Success The schema type of this response could be specified as `file` to denote opaque binary data. The generated Java code for `file` saves the response as a temporary file, making it a little more difficult to use and less efficient for common cases. If `string` causes problems for other generators, can switch to `file` type. schema: type: string examples: text/plain: | version: 1.0.{build} build: project: MySolution.sln verbosity: minimal publish_wap: true ... put: tags: - Project operationId: updateProjectSettingsYaml summary: Update project settings in YAML externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#update-project-settings-in-yaml' consumes: - text/plain parameters: - name: body in: body description: | The body of requests should contain YAML data. It is unclear how to specify this since the OpenAPI spec requires `schema` without `type` for `in: body` parameters and does not allow `type: file` in `schema`. See https://github.com/OAI/OpenAPI-Specification/issues/326 swagger-codegen (for Java, probably others) allows a binary string body parameter with non-application/json `consumes` to be passed through in the request body without conversion to JSON. schema: type: string format: binary required: true responses: default: $ref: '#/responses/Error' '204': description: Success /projects/{accountName}/{projectSlug}/settings/build-number: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' put: tags: - Project operationId: updateProjectBuildNumber summary: Update project build number externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#update-project-build-number' parameters: - name: body in: body required: true schema: $ref: '#/definitions/ProjectBuildNumberUpdate' responses: default: $ref: '#/responses/Error' '204': description: Success /projects/{accountName}/{projectSlug}/settings/environment-variables: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' get: tags: - Project operationId: getProjectEnvironmentVariables summary: Get project environment variables externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#get-project-environment-variables' responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: array items: $ref: '#/definitions/StoredNameValue' examples: application/json: - name: api_key value: isEncrypted: true value: very-secret-key-encrypted - name: var1 value: isEncrypted: false value: current-value put: tags: - Project operationId: updateProjectEnvironmentVariables summary: Update project environment variables externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#update-project-environment-variables' parameters: - name: body in: body required: true schema: type: array items: $ref: '#/definitions/StoredNameValue' responses: default: $ref: '#/responses/Error' '204': description: Success /projects/{accountName}/{projectSlug}/buildcache: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' delete: tags: - Project operationId: deleteProjectBuildCache summary: Delete project build cache externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#delete-project-build-cache' responses: default: $ref: '#/responses/Error' '204': description: Success /projects/status/{statusBadgeId}: parameters: - $ref: '#/parameters/statusBadgeId' get: tags: - Project operationId: getProjectStatusBadge summary: Get project status badge image externalDocs: url: https://www.appveyor.com/docs/status-badges/ security: [] parameters: - $ref: '#/parameters/svg' - $ref: '#/parameters/retina' - $ref: '#/parameters/passingText' - $ref: '#/parameters/failingText' - $ref: '#/parameters/pendingText' produces: - image/svg+xml - image/png responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: file /projects/status/{statusBadgeId}/branch/{buildBranch}: parameters: - $ref: '#/parameters/statusBadgeId' - $ref: '#/parameters/buildBranch' get: tags: - Project operationId: getProjectBranchStatusBadge summary: Get project branch status badge image externalDocs: url: https://www.appveyor.com/docs/status-badges/ security: [] parameters: - $ref: '#/parameters/svg' - $ref: '#/parameters/retina' - $ref: '#/parameters/passingText' - $ref: '#/parameters/failingText' - $ref: '#/parameters/pendingText' produces: - image/svg+xml - image/png responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: file /projects/status/{badgeRepoProvider}/{repoAccountName}/{repoSlug}: parameters: - $ref: '#/parameters/badgeRepoProvider' - $ref: '#/parameters/repoAccountName' - $ref: '#/parameters/repoSlug' get: tags: - Project operationId: getPublicProjectStatusBadge summary: Get status badge image for a project with a public repository externalDocs: url: https://www.appveyor.com/docs/status-badges/ security: [] parameters: - $ref: '#/parameters/branch' - $ref: '#/parameters/svg' - $ref: '#/parameters/retina' - $ref: '#/parameters/passingText' - $ref: '#/parameters/failingText' - $ref: '#/parameters/pendingText' produces: - image/svg+xml - image/png responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: file ### Project }}} ### {{{ Build /builds: post: tags: - Build operationId: startBuild summary: Start build of branch most recent commit externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#start-build-of-branch-most-recent-commit' parameters: - name: body in: body required: true schema: $ref: '#/definitions/BuildStartRequest' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/Build' examples: application/json: buildId: 136709 jobs: [] buildNumber: 7 version: 1.0.7 message: replaced with command [skip ci] branch: master commitId: c2892a70d60c96c1b65a7c665ab806b7731fea8a authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-08-15T22:05:54+00:00' messages: [] status: queued created: '2014-08-16T00:40:38.1703914+00:00' put: tags: - Build operationId: reRunBuild summary: Re-run build description: >- If `reRunIncomplete` is `true` and all jobs in the referenced build completed successfully, a 500 Internal Server Error is returned with the message "No failed or cancelled jobs in build with ID {buildId}". externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#re-run-build' parameters: - name: body in: body required: true schema: $ref: '#/definitions/ReRunBuildRequest' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/Build' examples: application/json: buildId: 136709 jobs: [] buildNumber: 7 version: 1.0.7 message: replaced with command [skip ci] branch: master commitId: c2892a70d60c96c1b65a7c665ab806b7731fea8a authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-08-15T22:05:54+00:00' messages: [] status: queued created: '2014-08-16T00:40:38.1703914+00:00' /builds/{accountName}/{projectSlug}/{buildVersion}: parameters: - $ref: '#/parameters/accountName' - $ref: '#/parameters/projectSlug' - $ref: '#/parameters/buildVersion' delete: tags: - Build operationId: cancelBuild summary: Cancel build externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#cancel-build' responses: default: $ref: '#/responses/Error' '204': description: Success /buildjobs/{jobId}/artifacts: parameters: - $ref: '#/parameters/jobId' get: tags: - Build operationId: getBuildArtifacts summary: Get build artifacts externalDocs: url: 'https://www.appveyor.com/docs/api/samples/download-artifacts-advanced-ps/' security: [] responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: array items: $ref: '#/definitions/ArtifactModel' examples: application/json: - fileName: README.md name: README.md type: File size: 3600 - fileName: out/example.Release.x64.zip name: out\example.zip type: Zip size: 15600 /buildjobs/{jobId}/artifacts/{artifactFileName}: parameters: - $ref: '#/parameters/jobId' - $ref: '#/parameters/artifactFileName' get: tags: - Build operationId: getBuildArtifact summary: Download build artifact externalDocs: url: 'https://www.appveyor.com/docs/api/samples/download-artifacts-advanced-ps/' security: [] produces: # Note: API does not currently guess artifact content type. # All are sent as application/octet-stream - application/octet-stream responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: file /buildjobs/{jobId}/log: parameters: - $ref: '#/parameters/jobId' get: tags: - Build operationId: getBuildLog summary: Download build log externalDocs: url: 'https://www.appveyor.com/docs/api/projects-builds/#download-build-log' security: [] produces: - application/octet-stream responses: default: $ref: '#/responses/Error' '200': description: |- Success. Note: Response content is plain text sent with Content-Type application/octet-stream. schema: type: file ### Build }}} ### {{{ Environment /environments: get: tags: - Environment operationId: getEnvironments summary: Get environments externalDocs: url: 'https://www.appveyor.com/docs/api/environments-deployments/#get-environments' responses: default: $ref: '#/responses/Error' '200': description: Success schema: type: array items: $ref: '#/definitions/DeploymentEnvironmentLookupModel' examples: application/json: - deploymentEnvironmentId: 14 name: azure-blob-1 provider: AzureBlob - deploymentEnvironmentId: 12 name: azure-deploy-test provider: AzureCS post: tags: - Environment operationId: addEnvironment summary: Add environment externalDocs: url: 'https://www.appveyor.com/docs/api/environments-deployments/#add-environment' parameters: - name: body in: body required: true schema: $ref: '#/definitions/DeploymentEnvironmentAddition' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/DeploymentEnvironmentWithSettings' examples: application/json: deploymentEnvironmentId: 3018 name: production provider: FTP environmentAccessKey: gi3ttevuk7a123 settings: providerSettings: - name: server value: isEncrypted: false value: ftp.myserver.com - name: username value: isEncrypted: false value: ftp-user - name: password value: isEncrypted: true value: password environmentVariables: - name: my-var value: isEncrypted: false value: '123' created: '2014-08-15T23:57:16.1585268+00:00' put: tags: - Environment operationId: updateEnvironment summary: Update environment externalDocs: url: 'https://www.appveyor.com/docs/api/environments-deployments/#update-environment' parameters: - name: body in: body required: true schema: $ref: '#/definitions/DeploymentEnvironmentWithSettings' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/DeploymentEnvironmentWithSettings' examples: application/json: deploymentEnvironmentId: 3018 name: production provider: FTP environmentAccessKey: gi3ttevuk7123 settings: providerSettings: - name: server value: isEncrypted: false value: ftp.myserver.com - name: username value: isEncrypted: false value: ftp-user - name: password value: isEncrypted: true value: password environmentVariables: - name: my-var value: isEncrypted: false value: '123' created: '2014-08-15T23:57:16.1585268+00:00' updated: '2014-08-16T00:00:37.6079863+00:00' /environments/{deploymentEnvironmentId}/settings: parameters: - $ref: '#/parameters/deploymentEnvironmentId' get: tags: - Environment operationId: getEnvironmentSettings summary: Get environment settings externalDocs: url: 'https://www.appveyor.com/docs/api/environments-deployments/#get-environment-settings' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/DeploymentEnvironmentSettingsResults' examples: application/json: environment: deploymentEnvironmentId: 14 name: azure-blob-1 provider: AzureBlob environmentAccessKey: aaabbb12345 settings: providerSettings: - name: storage_account_name value: isEncrypted: false value: myaccount - name: storage_access_key value: isEncrypted: true value: 4sc1c7/Qp5buQcZ8N486Ks46mLFbXJVqcJjyv98w== - name: container value: isEncrypted: false value: test - name: folder value: isEncrypted: false value: $(appveyor_build_version) - name: artifact value: isEncrypted: false environmentVariables: [] created: '2014-01-23T18:13:52.2268502+00:00' updated: '2014-06-02T18:13:32.5106126+00:00' /environments/{deploymentEnvironmentId}/deployments: parameters: - $ref: '#/parameters/deploymentEnvironmentId' get: tags: - Environment operationId: getEnvironmentDeployments summary: Get environment deployments externalDocs: url: 'https://www.appveyor.com/docs/api/environments-deployments/#get-environment-deployments' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/DeploymentEnvironmentDeploymentsResults' examples: application/json: environment: deploymentEnvironmentId: 14 name: azure-blob-1 provider: AzureBlob created: '2014-01-23T18:13:52.2268502+00:00' updated: '2014-06-02T18:13:32.5106126+00:00' deployments: - project: projectId: 15072 accountId: 2 accountName: FeodorFitsner builds: [] name: simple-web slug: simple-web repositoryType: gitHub repositoryScm: git repositoryName: AppVeyor/simple-web isPrivate: false skipBranchesWithoutAppveyorYml: false securityDescriptor: {} created: '2014-05-06T16:38:14.7788393+00:00' updated: '2014-06-02T21:37:30.9378043+00:00' deployment: deploymentId: 4120 build: buildId: 18665 jobs: [] buildNumber: 25 version: 1.0.25 message: 'Merge pull request #3 from FeodorFitsner/master' messageExtended: Changes to AccountController branch: master commitId: ed40bd27f732d162b2185d75921b1cd57191f83b authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-05-08T19:11:38+00:00' messages: [] status: success started: '2014-05-22T20:12:11.4475134+00:00' finished: '2014-05-22T20:12:33.7806881+00:00' created: '2014-05-22T20:09:53.759355+00:00' updated: '2014-05-22T20:12:33.7806881+00:00' environment: deploymentEnvironmentId: 14 name: azure-blob-1 provider: AzureBlob created: '2014-01-23T18:13:52.2268502+00:00' updated: '2014-06-02T18:13:32.5106126+00:00' jobs: - jobId: 1696fh3a2w5ng99y name: Deployment messagesCount: 0 status: success started: '2014-07-27T09:59:58.3955159+00:00' finished: '2014-07-27T10:00:11.5995296+00:00' created: '2014-07-27T09:59:57.0171035+00:00' updated: '2014-07-27T10:00:16.163082+00:00' status: success started: '2014-06-02T18:20:07.9871288+00:00' finished: '2014-06-02T18:20:25.11916+00:00' created: '2014-06-02T18:20:07.2833871+00:00' updated: '2014-06-02T18:20:25.11916+00:00' /environments/{deploymentEnvironmentId}: parameters: - $ref: '#/parameters/deploymentEnvironmentId' delete: tags: - Environment operationId: deleteEnvironment summary: Delete environment externalDocs: url: 'https://www.appveyor.com/docs/api/environments-deployments/#delete-environment' responses: default: $ref: '#/responses/Error' '204': description: Success ### Environment }}} ### {{{ Deployment /deployments/{deploymentId}: parameters: - $ref: '#/parameters/deploymentId' get: tags: - Deployment operationId: getDeployment summary: Get deployment externalDocs: url: 'https://www.appveyor.com/docs/api/environments-deployments/#get-deployment' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/ProjectDeployment' examples: application/json: project: projectId: 22321 accountId: 2 accountName: appvyr builds: [] name: simple-web slug: simple-web repositoryType: gitHub repositoryScm: git repositoryName: AppVeyor/simple-web isPrivate: false skipBranchesWithoutAppveyorYml: false securityDescriptor: {} created: '2014-05-08T18:38:57.9163293+00:00' updated: '2014-07-14T10:16:26.9351867+00:00' deployment: deploymentId: 19475 build: buildId: 132746 jobs: [] buildNumber: 38 version: 1.0.38 message: Removed Start-Website branch: master commitId: c397ba5d17dd17b994375405f560e4922207da1e authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-08-12T22:56:00+00:00' messages: [] status: success started: '2014-08-12T22:56:25.8575967+00:00' finished: '2014-08-12T22:58:05.7595508+00:00' created: '2014-08-12T22:56:09.9208493+00:00' updated: '2014-08-12T22:58:05.7595508+00:00' environment: deploymentEnvironmentId: 27 name: agent test provider: Agent created: '2014-04-01T17:56:41.30982+00:00' updated: '2014-08-12T22:35:51.9723883+00:00' jobs: - jobId: jnpbcc77s4w278e4 name: Deployment messagesCount: 0 status: success started: '2014-08-12T23:06:10.8776088+00:00' finished: '2014-08-12T23:06:24.3361102+00:00' created: '2014-08-12T23:06:07.9009315+00:00' updated: '2014-08-12T23:06:24.9390847+00:00' status: success started: '2014-08-12T23:06:10.8776088+00:00' finished: '2014-08-12T23:06:25.0502019+00:00' created: '2014-08-12T23:06:07.9009315+00:00' updated: '2014-08-12T23:06:25.0502019+00:00' /deployments: post: tags: - Deployment operationId: startDeployment summary: Start deployment externalDocs: url: 'https://www.appveyor.com/docs/api/environments-deployments/#start-deployment' parameters: - name: body in: body required: true schema: $ref: '#/definitions/DeploymentStartRequest' responses: default: $ref: '#/responses/Error' '200': description: Success schema: $ref: '#/definitions/Deployment' examples: application/json: deploymentId: 19475 build: buildId: 132746 jobs: [] buildNumber: 38 version: 1.0.38 message: Removed Start-Website branch: master commitId: c397ba5d17dd17b994375405f560e4922207da1e authorName: Feodor Fitsner authorUsername: FeodorFitsner committerName: Feodor Fitsner committerUsername: FeodorFitsner committed: '2014-08-12T22:56:00+00:00' messages: [] status: success started: '2014-08-12T22:56:25.8575967+00:00' finished: '2014-08-12T22:58:05.7595508+00:00' created: '2014-08-12T22:56:09.9208493+00:00' updated: '2014-08-12T22:58:05.7595508+00:00' environment: deploymentEnvironmentId: 27 name: agent test provider: Agent created: '2014-04-01T17:56:41.30982+00:00' updated: '2014-08-12T22:35:51.9723883+00:00' jobs: - jobId: jnpbcc77s4w278e4 name: Deployment messagesCount: 0 status: success started: '2014-08-12T23:06:10.8776088+00:00' finished: '2014-08-12T23:06:24.3361102+00:00' created: '2014-08-12T23:06:07.9009315+00:00' updated: '2014-08-12T23:06:24.9390847+00:00' status: success started: '2014-08-12T23:06:10.8776088+00:00' finished: '2014-08-12T23:06:25.0502019+00:00' created: '2014-08-12T23:06:07.9009315+00:00' updated: '2014-08-12T23:06:25.0502019+00:00' /deployments/stop: put: tags: - Deployment operationId: cancelDeployment summary: Cancel deployment externalDocs: url: 'https://www.appveyor.com/docs/api/environments-deployments/#cancel-deployment' parameters: - name: body in: body required: true schema: $ref: '#/definitions/DeploymentCancellation' responses: default: $ref: '#/responses/Error' '204': description: Success ### Deployment }}} # vim: set foldmethod=marker :