@atomist/sdm
Version:
Atomist Software Delivery Machine SDK
31 lines • 1.7 kB
TypeScript
import { EventRegistrationManager } from "../registration/EventRegistrationManager";
import { IngesterRegistrationManager } from "../registration/IngesterRegistrationManager";
import { CommandRegistrationManager } from "./CommandRegistrationManager";
import { ExtensionPack } from "./ExtensionPack";
import { FunctionalUnit } from "./FunctionalUnit";
import { GoalDrivenMachine } from "./GoalDrivenMachine";
import { ListenerRegistrationManager } from "./ListenerRegistrationManager";
import { SoftwareDeliveryMachineConfiguration } from "./SoftwareDeliveryMachineOptions";
/**
* Class instantiated to create a **Software Delivery MachineConfiguration**.
* Combines commands and delivery event handling using _goals_.
*
* Goals and goal "implementations" can be defined by users.
*
* The most important element of a software delivery machine is setting
* zero or more _push rules_.
* This is normally done using an internal DSL
*/
export interface SoftwareDeliveryMachine<O extends SoftwareDeliveryMachineConfiguration = SoftwareDeliveryMachineConfiguration> extends GoalDrivenMachine<O>, ListenerRegistrationManager, CommandRegistrationManager, EventRegistrationManager, IngesterRegistrationManager, FunctionalUnit {
/**
* Add capabilities from these extension packs.
* This is the primary SDM extension
* mechanism. Extension packs are typically brought in as Node modules,
* and can contribute goals as well configure SDM behavior.
* @param {ExtensionPack} packs
* @return {this}
*/
addExtensionPacks(...packs: ExtensionPack[]): this;
readonly extensionPacks: ReadonlyArray<ExtensionPack>;
}
//# sourceMappingURL=SoftwareDeliveryMachine.d.ts.map