| Interface | Description | 
|---|---|
| Application | A software application. | 
| ApplicationBinarySpec | A binary produced from a ` ApplicationSpec`. | 
| ApplicationSpec | A specification of a  Application. | 
| Binary | A physical binary artifact, which can run on a particular platform or runtime. | 
| BinaryContainer | A container for project binaries, which represent physical artifacts that can run on a particular platform or runtime. | 
| BinarySpec | Represents a binary that is the result of building a component. | 
| BinaryTasksCollection | A collection of tasks associated to a binary | 
| ComponentSpec | A software component that is built by Gradle. | 
| ComponentSpecContainer | A container of software components. | 
| DependencySpec | A dependency onto a Gradle component. | 
| DependencySpecBuilder | A builder of a  DependencySpec. | 
| DependencySpecContainer | A container for dependency specifications. | 
| GeneralComponentSpec | A general purpose component specification, that can be used to represent some software component built from source and producing
 multiple output variants. | 
| Library | A library that can be linked into or depended on by another software element. | 
| LibraryBinaryDependencySpec | A dependency onto a specific binary of a library published by a project. | 
| LibraryBinarySpec | A binary produced from a ` LibrarySpec`. | 
| LibrarySpec | A specification of a  Library. | 
| ModuleDependencySpec | A dependency onto a module. | 
| ModuleDependencySpecBuilder | A builder of a  ModuleDependencySpec. | 
| Platform | The platform or runtime that a binary is designed to run on. | 
| PlatformAwareComponentSpec | Defines Platform specific operations for ComponentSpecs | 
| PlatformContainer | A container of  Platforms. | 
| ProjectDependencySpec | A dependency onto a library published by a project. | 
| ProjectDependencySpecBuilder | A builder of a  ProjectDependencySpec. | 
| SourceComponentSpec | Represents some component whose implementation can be represented as a collection of source files, and whose other
 outputs are built from this source. | 
| ToolChain | A set of compilers that are used together to construct binaries. | 
| ToolChainRegistry<P extends Platform,T extends ToolChain> | A Provider of  ToolChains. | 
| TransformationFileType | The type of a file of a transformation | 
| TypeBuilder<T> | A TypeBuilder to configure the registration of a type. | 
| VariantComponent | A component that has one or more mutually exclusive variants. | 
| VariantComponentSpec | Represents a component spec that is made up of one or more mutually exclusive variants. | 
| Exception | Description | 
|---|---|
| InvalidModelException | Thrown when a component model is declared in an invalid way. | 
| ModelInstantiationException | Thrown when a model element cannot be instantiated for some reason. | 
| Annotation Type | Description | 
|---|---|
| BinaryTasks | Declares the tasks to build a custom  BinarySpecbinary. | 
| ComponentBinaries | Declares the binaries that should be built for a custom  ComponentSpectype. | 
| ComponentType | Declares a custom  ComponentSpectype. | 
| Variant | Declares that a property represents a variant dimension. |