# Package org.gradle.tooling.model

The general-purpose tooling model types, provided by the tooling API.

- Interface Summary
  Interface | Description
  --- | ---
  BuildableElement | Represents an element which has Gradle tasks associated with it.
  BuildIdentifier | Identifies a Gradle build.
  BuildModel | Represents a model that is associated with or represents some Gradle build.
  ComponentSelector | Represents a component selector.
  Dependency | Represents an artifact dependency.
  DomainObjectSet<T> | A set of domain objects of type T.
  Element | Described model element.
  ExternalDependency | Represents an external artifact dependency.
  GradleModuleVersion | Informs about a module version, i.e.
  GradleProject | Represents a Gradle project.
  GradleTask | Represents a task which is executable by Gradle.
  HasGradleProject | An element that is associated with a Gradle project.
  HierarchicalElement | Represents an element which belongs to some hierarchy.
  Launchable | Represents an object that can be used to launch a Gradle build, such as a task.
  Model | A model that is buildable by the Tooling API.
  ProjectDependency | Represents a dependency on another project.
  ProjectIdentifier | Identifies a Gradle project.
  ProjectModel | Represents a model that is associated with some Gradle project.
  SourceDirectory | Represents a source directory.
  Task | Represents a task which is executable by Gradle.
  TaskSelector | Represents a `Launchable` that uses task name to select tasks executed from a given project and its sub-projects.

- Exception Summary
  Exception | Description
  --- | ---
  UnsupportedMethodException | Thrown when the tooling API client attempts to use a method that does not exist in the version of Gradle that the tooling API is connected to.