# IdeaModel

API Documentation: | `IdeaModel`

DSL-friendly model of the IDEA project information. First point of entry when it comes to customizing the IDEA generation.

See the examples in docs for `IdeaModule` or `IdeaProject`.

### Properties

Property | Description
`module` | Configures IDEA module information.
`project` | Configures IDEA project information.
`targetVersion` | Configures the target IDEA version.
`workspace` | Configures IDEA workspace information.

### Methods

Method | Description
`module(action)` | Configures IDEA module information.
`pathVariables(pathVariables)` | Adds path variables to be used for replacing absolute paths in resulting files (*.iml, etc.).
`project(action)` | Configures IDEA project information.
`workspace(action)` | Configures IDEA workspace information.

### Script blocks

Block | Description
`module` | Configures IDEA module information.
`project` | Configures IDEA project information.
`workspace` | Configures IDEA workspace information.

### Property details

#### `IdeaModule` `module`

Configures IDEA module information.

For examples see docs for `IdeaModule`.

#### `IdeaProject` `project`

Configures IDEA project information.

For examples see docs for `IdeaProject`.

#### `String` `targetVersion`

Configures the target IDEA version.

#### `IdeaWorkspace` `workspace`

Configures IDEA workspace information.

For examples see docs for `IdeaWorkspace`.

### Method details

#### `void` `module`(``Action`<? super `IdeaModule`>` action)

Configures IDEA module information.

For examples see docs for `IdeaModule`.

#### `void` `pathVariables`(``Map`<`String`, `File`>` pathVariables)

Adds path variables to be used for replacing absolute paths in resulting files (*.iml, etc.).

For example see docs for `IdeaModule`.

#### `void` `project`(``Action`<? super `IdeaProject`>` action)

Configures IDEA project information.

For examples see docs for `IdeaProject`.

#### `void` `workspace`(``Action`<? super `IdeaWorkspace`>` action)

Configures IDEA workspace information.

For examples see docs for `IdeaWorkspace`.

### Script block details

#### `module` { }

Configures IDEA module information.

For examples see docs for `IdeaModule`.

Delegates to:
  `IdeaModule` from `module`

#### `project` { }

Configures IDEA project information.

For examples see docs for `IdeaProject`.

Delegates to:
  `IdeaProject` from `project`

#### `workspace` { }

Configures IDEA workspace information.

For examples see docs for `IdeaWorkspace`.

Delegates to:
  `IdeaWorkspace` from `workspace`