{
  "service": "appveyor",
  "displayName": "AppVeyor",
  "categories": [
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "APPVEYOR_TOKEN",
      "description": "AppVeyor API token used with the Authorization Bearer header. Find or create it on the AppVeyor API token page: https://ci.appveyor.com/api-keys.",
      "extraFields": [
        {
          "key": "accountName",
          "label": "Account Name",
          "inputType": "text",
          "required": false,
          "secret": false,
          "placeholder": "my-appveyor-account",
          "description": "Optional AppVeyor account name used to scope user-level API keys through /api/account/{accountName}. AppVeyor documents this requirement in the REST API authentication guide: https://www.appveyor.com/docs/api/."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.appveyor.com",
  "actions": [
    {
      "id": "appveyor.get_build_artifacts",
      "service": "appveyor",
      "name": "get_build_artifacts",
      "description": "List artifacts produced by one AppVeyor build job.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "accountName": {
            "type": "string",
            "minLength": 1,
            "description": "The AppVeyor account name used to scope requests for user-level API keys."
          },
          "jobId": {
            "type": "string",
            "minLength": 1,
            "description": "The AppVeyor build job ID whose artifacts should be listed."
          }
        },
        "additionalProperties": false,
        "required": [
          "jobId"
        ],
        "description": "Input parameters for listing artifacts produced by one AppVeyor build job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "artifacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "fileName": {
                  "type": "string",
                  "description": "The artifact file name."
                },
                "name": {
                  "type": "string",
                  "description": "The artifact display name when AppVeyor returns one."
                },
                "type": {
                  "type": "string",
                  "description": "The AppVeyor artifact type."
                },
                "size": {
                  "type": "integer",
                  "description": "The artifact size in bytes when AppVeyor returns it."
                },
                "created": {
                  "type": "string",
                  "description": "The timestamp when the artifact was created."
                }
              },
              "additionalProperties": true,
              "description": "An AppVeyor build artifact returned by the build job artifacts API."
            },
            "description": "The AppVeyor build artifacts returned by the request."
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of AppVeyor artifacts returned by the request."
          }
        },
        "additionalProperties": false,
        "description": "The normalized AppVeyor build artifacts list."
      }
    },
    {
      "id": "appveyor.get_environments",
      "service": "appveyor",
      "name": "get_environments",
      "description": "List AppVeyor deployment environments accessible to the connected API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "accountName": {
            "type": "string",
            "minLength": 1,
            "description": "The AppVeyor account name used to scope requests for user-level API keys."
          }
        },
        "additionalProperties": false,
        "description": "Optional AppVeyor account scoping parameters for this request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "environments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "deploymentEnvironmentId": {
                  "type": "integer",
                  "description": "The numeric AppVeyor deployment environment ID."
                },
                "name": {
                  "type": "string",
                  "description": "The AppVeyor deployment environment name."
                },
                "provider": {
                  "type": "string",
                  "description": "The AppVeyor deployment provider type."
                },
                "created": {
                  "type": "string",
                  "description": "The timestamp when the environment was created."
                },
                "updated": {
                  "type": "string",
                  "description": "The timestamp when the environment was last updated."
                }
              },
              "additionalProperties": true,
              "description": "An AppVeyor deployment environment returned by the environments API."
            },
            "description": "The AppVeyor deployment environments returned by the request."
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of AppVeyor environments returned by the request."
          }
        },
        "additionalProperties": false,
        "description": "The normalized AppVeyor environments list."
      }
    },
    {
      "id": "appveyor.get_projects",
      "service": "appveyor",
      "name": "get_projects",
      "description": "List AppVeyor projects accessible to the connected API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "accountName": {
            "type": "string",
            "minLength": 1,
            "description": "The AppVeyor account name used to scope requests for user-level API keys."
          }
        },
        "additionalProperties": false,
        "description": "Optional AppVeyor account scoping parameters for this request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "projectId": {
                  "type": "integer",
                  "description": "The numeric AppVeyor project ID."
                },
                "accountId": {
                  "type": "integer",
                  "description": "The numeric AppVeyor account ID that owns the project."
                },
                "accountName": {
                  "type": "string",
                  "description": "The AppVeyor account name that owns the project."
                },
                "name": {
                  "type": "string",
                  "description": "The AppVeyor project display name."
                },
                "slug": {
                  "type": "string",
                  "description": "The AppVeyor project slug."
                },
                "repositoryType": {
                  "type": "string",
                  "description": "The source repository provider type configured for the project."
                },
                "repositoryScm": {
                  "type": "string",
                  "description": "The source control management type configured for the project."
                },
                "repositoryName": {
                  "type": "string",
                  "description": "The repository name connected to the project."
                },
                "isPrivate": {
                  "type": "boolean",
                  "description": "Whether the connected repository is private."
                },
                "created": {
                  "type": "string",
                  "description": "The timestamp when the project was created."
                },
                "updated": {
                  "type": "string",
                  "description": "The timestamp when the project was last updated."
                }
              },
              "additionalProperties": true,
              "description": "An AppVeyor project returned by the projects API."
            },
            "description": "The AppVeyor projects returned by the request."
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of AppVeyor projects returned by the request."
          }
        },
        "additionalProperties": false,
        "description": "The normalized AppVeyor projects list."
      }
    },
    {
      "id": "appveyor.get_role",
      "service": "appveyor",
      "name": "get_role",
      "description": "Retrieve one AppVeyor team role by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "accountName": {
            "type": "string",
            "minLength": 1,
            "description": "The AppVeyor account name used to scope requests for user-level API keys."
          },
          "roleId": {
            "type": "integer",
            "minimum": 1,
            "description": "The AppVeyor role ID to retrieve."
          }
        },
        "additionalProperties": false,
        "required": [
          "roleId"
        ],
        "description": "Input parameters for retrieving one AppVeyor role."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "role": {
            "type": "object",
            "properties": {
              "roleId": {
                "type": "integer",
                "minimum": 1,
                "description": "The AppVeyor role ID to retrieve."
              },
              "name": {
                "type": "string",
                "description": "The AppVeyor role name."
              },
              "isSystem": {
                "type": "boolean",
                "description": "Whether the role is an AppVeyor system role."
              },
              "created": {
                "type": "string",
                "description": "The timestamp when the role was created."
              },
              "updated": {
                "type": "string",
                "description": "The timestamp when the role was last updated."
              }
            },
            "additionalProperties": true,
            "description": "An AppVeyor role returned by the team API."
          }
        },
        "additionalProperties": false,
        "description": "The normalized AppVeyor role response."
      }
    },
    {
      "id": "appveyor.get_roles",
      "service": "appveyor",
      "name": "get_roles",
      "description": "List AppVeyor team roles accessible to the connected API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "accountName": {
            "type": "string",
            "minLength": 1,
            "description": "The AppVeyor account name used to scope requests for user-level API keys."
          }
        },
        "additionalProperties": false,
        "description": "Optional AppVeyor account scoping parameters for this request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "roles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "roleId": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "The AppVeyor role ID to retrieve."
                },
                "name": {
                  "type": "string",
                  "description": "The AppVeyor role name."
                },
                "isSystem": {
                  "type": "boolean",
                  "description": "Whether the role is an AppVeyor system role."
                },
                "created": {
                  "type": "string",
                  "description": "The timestamp when the role was created."
                },
                "updated": {
                  "type": "string",
                  "description": "The timestamp when the role was last updated."
                }
              },
              "additionalProperties": true,
              "description": "An AppVeyor role returned by the team API."
            },
            "description": "The AppVeyor roles returned by the request."
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of AppVeyor roles returned by the request."
          }
        },
        "additionalProperties": false,
        "description": "The normalized AppVeyor roles list."
      }
    },
    {
      "id": "appveyor.get_users",
      "service": "appveyor",
      "name": "get_users",
      "description": "List AppVeyor team users accessible to the connected API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "accountName": {
            "type": "string",
            "minLength": 1,
            "description": "The AppVeyor account name used to scope requests for user-level API keys."
          }
        },
        "additionalProperties": false,
        "description": "Optional AppVeyor account scoping parameters for this request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "accountId": {
                  "type": "integer",
                  "description": "The numeric AppVeyor account ID associated with the user."
                },
                "accountName": {
                  "type": "string",
                  "description": "The AppVeyor account name associated with the user."
                },
                "isOwner": {
                  "type": "boolean",
                  "description": "Whether the user owns the AppVeyor account."
                },
                "isCollaborator": {
                  "type": "boolean",
                  "description": "Whether the user is an AppVeyor collaborator."
                },
                "userId": {
                  "type": "integer",
                  "description": "The numeric AppVeyor user ID."
                },
                "fullName": {
                  "type": "string",
                  "description": "The AppVeyor user's full name."
                },
                "email": {
                  "type": "string",
                  "description": "The AppVeyor user's email address."
                },
                "roleId": {
                  "type": "integer",
                  "description": "The numeric AppVeyor role ID assigned to the user."
                },
                "roleName": {
                  "type": "string",
                  "description": "The AppVeyor role name assigned to the user."
                },
                "created": {
                  "type": "string",
                  "description": "The timestamp when the user was added."
                },
                "updated": {
                  "type": "string",
                  "description": "The timestamp when the user was last updated."
                }
              },
              "additionalProperties": true,
              "description": "An AppVeyor user returned by the team API."
            },
            "description": "The AppVeyor users returned by the request."
          },
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of AppVeyor users returned by the request."
          }
        },
        "additionalProperties": false,
        "description": "The normalized AppVeyor users list."
      }
    }
  ]
}
