# 3.5.4. buildset

resource type: buildset
  Attributes:

    - bsid (integer) – the ID of this buildset

    - complete (boolean) – true if all of the build requests in this buildset are complete

    - complete_at? (integer) – the time this buildset was completed, or None if not complete

    - external_idstring? (string) – an identifier that external applications can use to identify a submitted buildset; can be None

    - parent_buildid? (integer) – optional build id that is the parent for this buildset

    - parent_relationship? (string) – relationship identifier for the parent, this is a configured relationship between the parent build, and the childs buildsets

    - reason (string) – the reason this buildset was scheduled

    - rebuilt_buildid? (integer) – optional id of a build which was rebuilt or None if there was no rebuild. In case of repeated rebuilds, only initial build id is tracked

    - results? (integer) – the results of the buildset (see Build Result Codes), or None if not complete

    - sourcestamps[] (sourcestamp) – the sourcestamps for this buildset; each element is a valid `sourcestamp` entity

    - submitted_at (integer) – the time this buildset was submitted

A buildset gathers build requests that were scheduled at the same time, and which share a source stamp, properties, and so on.

## 3.5.4.1. Update Methods

All update methods are available as attributes of `master.data.updates`.

class buildbot.data.buildsets.Buildset
  addBuildset(scheduler=None, sourcestamps=[], reason='', properties={}, builderids=[], external_idstring=None, parent_buildid=None, parent_relationship=None)
    Parameters:

      - scheduler (string) – the name of the scheduler creating this buildset

      - sourcestamps (list) – sourcestamps for the new buildset; see below

      - reason (unicode) – the reason for this build

      - properties (dictionary with unicode keys and (source, property value) values) – properties to set on this buildset

      - builderids (list) – names of the builders for which build requests should be created

      - external_idstring (unicode) – arbitrary identifier to recognize this buildset later

      - parent_buildid (int) – optional build id that is the parent for this buildset

      - parent_relationship (unicode) – relationship identifier for the parent, this is a configured relationship between the parent build, and the childs buildsets

    Returns:

      (buildset id, dictionary mapping builder ids to build request ids) via Deferred

    Create a new buildset and corresponding buildrequests based on the given parameters. This is the low-level interface for scheduling builds.

    Each sourcestamp in the list of sourcestamps can be given either as an integer, assumed to be a sourcestamp ID, or a dictionary of keyword arguments to be passed to `findSourceStampId`.

  maybeBuildsetComplete(bsid)
    Parameters:

      bsid (integer) – id of the buildset that may be complete

    Returns:

      Deferred

    This method should be called when a build request is finished. It checks the given buildset to see if all of its buildrequests are finished. If so, it updates the status of the buildset and sends the appropriate messages.

## 3.5.4.2. Endpoints

path: /buildsets

This path selects all buildsets

`GET`
  `returns`

    `collection` of `buildset`

path: /buildsets/{bsid}
  Path Keys:

    bsid (identifier) – the id of the buildset

This path selects a buildset by id

`GET`
  `returns`

    `collection` of `buildset`