openapi: 3.0.4 info: title: Bench AccountActivities Phases API description: "

Versioning

\n

\n The API is currently at version 1.0. All API endpoints (other than\n authentication) require you to specify the API version as part of the path.\n

\n\n

URL Paths

\n

\n Authentication requests should be made to /auth/signin,\n as documented below. All other API requests should be made to\n sub-paths of /rp/api/1.0/....\n

\n\n

Authentication

\n

\n API requests are authenticated using an OAuth Bearer token.\n You can get a token by authenticating your user by sending a\n POST request to /auth/signin, with \"username and \"password\"\n parameters form-encoded in the body of the request.\n\n POST /auth/signin HTTP/1.1\n Content-Type: application/x-www-form-urlencoded\n\n username=user@example.com&password=some-secret-password\n

\n

\n The response will be a JSON object including both\n \"access_token\" and \"refresh_token\" property.\n All other requests against the Bench API should include an\n authorization header: Authorization: Bearer xxxYYYzzz,\n where xxxYYYzzz is the value of \"access_token\" in the response.\n

\n For example:\n\n $ curl https://bench.gobridgit.com/auth/signin -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'username=someone@example.com' --data-urlencode 'password=[...snip...]'\n {\n \"access_token\": \"...snip...\",\n \"token_type\": \"Bearer\",\n \"refresh_token\": \"...snip...\"\n \"expiry\": \"2020-01-01T00:00:00.413440849Z\"\n }\n\n

\n\n

\n The refresh token can be used to generate new session by request with /auth/token endpoint:\n\n POST /auth/token HTTP/1.1\n Content-Type: application/x-www-form-urlencoded\n\n grant_type=refresh_token&refresh_token=tGzv3JOkF0XG5Qx2TlKWIA\n

\n

\n Note that once the refresh token is used, the previous access and refresh token is no longer valid.\n

\n For example:\n\n $ curl https://bench.gobridgit.com/auth/token -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=refresh_token' --data-urlencode 'refresh_token=[...snip...]'\n {\n \"access_token\": \"...snip...\",\n \"token_type\": \"Bearer\",\n \"refresh_token\": \"...snip...\"\n \"expiry\": \"2020-01-01T00:00:00.413440849Z\"\n }\n

\n\n

Pagination

\n

\n Several of the API endpoints are paginated. These are denoted by\n including the offset (zero-based offset) and limit query\n parameters. For example, to request the 10 items,\n set the offset=0 to limit=10.\n
\n NOTE: the result set contains items with index of 0-9\n
\n To request the next 10 items (starting at index 10),\n set the offset=10 to limit=10\n

\n

\n Responses to paginated API endpoints return a JSON array of objects.\n If there are results beyond the page you have requested, the server\n will set a query-has-more: true header in the response.\n

\n\n

Request Encoding

\n

\n GET and DELETE requests should have parameters encoded as URL query\n parameters. Boolean values should be encoded as true and\n false, not as 1 and 0.\n

\n\n

Errors

\n

\n Errors are returned for some response codes such as 400 Bad Request in the\n following format:\n\n {\n \"errors\": [\n {\n \"errorType\": \"ValidationError\",\n \"description\": \"The value of Name must be a string with a minimum length of 1 and a maximum length of 8 and not whitespace.\",\n \"field\": \"Name\",\n \"values\": [\n null\n ]\n }\n ],\n \"title\": \"One or more validation errors occurred.\",\n \"status\": 400,\n \"instance\": \"api/v1/accounts/0/persons\",\n \"requestUid\": \"123e4567-e89b-12d3-a456-426614174000\"\n }\n

\n" version: '1.0' servers: - url: https://bench.gobridgit.com description: Bridgit Bench production security: - {} tags: - name: Phases paths: /rp/api/v1/accounts/{accountId}/Phases: get: tags: - Phases summary: Gets the list of phases in the given account description: '
Permissions
Account: Read' operationId: Phases_Query parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 responses: '200': description: 'Success: List of phases' content: text/plain: schema: type: array items: $ref: '#/components/schemas/PhaseResponse' application/json: schema: type: array items: $ref: '#/components/schemas/PhaseResponse' text/json: schema: type: array items: $ref: '#/components/schemas/PhaseResponse' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden post: tags: - Phases summary: Adds a new phase to the given account description: "You must specify \"name\" for this endpoint.\n\n \nIf the \"includeOnNewProjects\" property is true, then the phase is included by default on new projects.\n\n \nAn account can have a maximum of 20 phases.
Permissions
Account: Write" operationId: Phases_Add parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 requestBody: description: Object with the name of the phase and whether to include it by default on new projects content: application/json-patch+json: schema: $ref: '#/components/schemas/PhaseAddRequest' application/json: schema: $ref: '#/components/schemas/PhaseAddRequest' text/json: schema: $ref: '#/components/schemas/PhaseAddRequest' application/*+json: schema: $ref: '#/components/schemas/PhaseAddRequest' required: true responses: '201': description: 'Success: Newly created phase model' content: text/plain: schema: $ref: '#/components/schemas/PhaseResponse' application/json: schema: $ref: '#/components/schemas/PhaseResponse' text/json: schema: $ref: '#/components/schemas/PhaseResponse' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '409': description: Conflict - Phase with name already exists in the account '422': description: Unprocessable Entity - Limit for number of phases on the account has been reached put: tags: - Phases summary: Updates and re-orders the list of phases on an account description: 'This endpoint will update the order of the phases in the account by the order that is sent in NOTE: This endpoint does not require all of the phases to be sent in. HOWEVER, if you do not pass in all of the phases on the account, the order may not come back in an expected order.
Permissions
Account: Write' operationId: Phases_Update parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 requestBody: description: Array of objects with the id of the phase, the name and whether to include it by default on new projects content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/PhaseUpdateRequest' application/json: schema: type: array items: $ref: '#/components/schemas/PhaseUpdateRequest' text/json: schema: type: array items: $ref: '#/components/schemas/PhaseUpdateRequest' application/*+json: schema: type: array items: $ref: '#/components/schemas/PhaseUpdateRequest' required: true responses: '204': description: No Content '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '409': description: Conflict - Phase with name already exists in the account delete: tags: - Phases summary: Removes phases from the given account description: '
Permissions
Account: Write' operationId: Phases_Delete parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 requestBody: description: The Phase IDs to be removed content: application/json-patch+json: schema: type: array items: type: integer format: int64 application/json: schema: type: array items: type: integer format: int64 text/json: schema: type: array items: type: integer format: int64 application/*+json: schema: type: array items: type: integer format: int64 required: true responses: '204': description: No Content '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden /rp/api/v1/accounts/{accountId}/Phases/{id}: get: tags: - Phases summary: Gets the phase by id in the given account description: '
Permissions
Account: Read' operationId: Phases_Get parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 - name: id in: path description: The Phase ID required: true schema: type: integer format: int64 responses: '200': description: 'Success: Phase' content: text/plain: schema: $ref: '#/components/schemas/PhaseResponse' application/json: schema: $ref: '#/components/schemas/PhaseResponse' text/json: schema: $ref: '#/components/schemas/PhaseResponse' '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden put: tags: - Phases summary: Updates a single phase on an account description: '
Permissions
Account: Write' operationId: Phases_UpdateSingle parameters: - name: accountId in: path description: The Account ID required: true schema: type: integer format: int32 - name: id in: path description: The Phase ID required: true schema: type: integer format: int64 requestBody: description: Object with the name and whether to include it by default on new projects content: application/json-patch+json: schema: $ref: '#/components/schemas/PhaseFromRouteUpdateRequest' application/json: schema: $ref: '#/components/schemas/PhaseFromRouteUpdateRequest' text/json: schema: $ref: '#/components/schemas/PhaseFromRouteUpdateRequest' application/*+json: schema: $ref: '#/components/schemas/PhaseFromRouteUpdateRequest' required: true responses: '204': description: No Content '400': description: Bad Request '401': description: Unauthorized '403': description: Forbidden '409': description: Conflict - Phase with name already exists in the account components: schemas: PhaseAddRequest: type: object properties: name: type: string nullable: true example: Pre-Construction includeOnNewProjects: type: boolean additionalProperties: false PhaseFromRouteUpdateRequest: type: object properties: name: type: string nullable: true example: Pre-Construction includeOnNewProjects: type: boolean additionalProperties: false PhaseResponse: type: object properties: id: type: integer format: int64 example: 1234 name: type: string nullable: true example: Pre-Construction includeOnNewProjects: type: boolean projects: type: array items: type: integer format: int64 nullable: true example: - 1 - 12 - 123 - 1234 additionalProperties: false PhaseUpdateRequest: type: object properties: id: type: integer format: int64 example: 1234 name: type: string nullable: true example: Pre-Construction includeOnNewProjects: type: boolean additionalProperties: false securitySchemes: Bearer: type: http description: Standard Authorization header using the Bearer scheme scheme: bearer bearerFormat: JWT