| // Package manager, itself a part of BMaaS project, provides implementation | 
 | // governing Equinix bare metal server lifecycle according to conditions set by | 
 | // Bare Metal Database (BMDB). | 
 | // | 
 | // The implementation will attempt to provide as many machines as possible and | 
 | // register them with BMDB. This is limited by the count of Hardware | 
 | // Reservations available in the Equinix Metal project used. The BMaaS agent | 
 | // will then be started on these machines as soon as they become ready. | 
 | // | 
 | // The implementation is provided in the form of a library, to which interface is | 
 | // exported through Provisioner and Initializer types, each taking servers | 
 | // through a single stage of their lifecycle. | 
 | // | 
 | // See the included test code for usage examples. | 
 | // | 
 | // The terms "device" and "machine" are used interchangeably throughout this | 
 | // package due to differences in Equinix Metal and BMDB nomenclature. | 
 | package manager |