How to get what data-model provide in Teamcity email notification freemarker

I’m doing something about customization for Teamcity notification emails and I’m following Customizing Notifications. Accoring to it, the data-model Teamcity provide is

<#-- @ftlvariable name="project" type="jetbrains.buildServer.serverSide.SProject" -->
<#-- @ftlvariable name="buildType" type="jetbrains.buildServer.serverSide.SBuildType" -->
<#-- @ftlvariable name="build" type="jetbrains.buildServer.serverSide.SBuild" -->
<#-- @ftlvariable name="agentName" type="java.lang.String" -->
<#-- @ftlvariable name="buildServer" type="jetbrains.buildServer.serverSide.SBuildServer" -->
<#-- @ftlvariable name="webLinks" type="jetbrains.buildServer.serverSide.WebLinks" -->

<#-- @ftlvariable name="var.buildFailedTestsErrors" type="java.lang.String" -->
<#-- @ftlvariable name="var.buildShortStatusDescription" type="java.lang.String" -->
<#-- @ftlvariable name="var.buildChanges" type="java.lang.String" -->
<#-- @ftlvariable name="var.buildCompilationErrors" type="java.lang.String" -->

<#-- @ftlvariable name="link.editNotificationsLink" type="java.lang.String" -->
<#-- @ftlvariable name="link.buildResultsLink" type="java.lang.String" -->
<#-- @ftlvariable name="link.buildChangesLink" type="java.lang.String" -->
<#-- @ftlvariable name="responsibility" type="jetbrains.buildServer.responsibility.ResponsibilityEntry" -->
<#-- @ftlvariable name="oldResponsibility" type="jetbrains.buildServer.responsibility.ResponsibilityEntry" -->

And it’s said that

the code can be used in IntelliJ IDEA to edit the template with

I don’t have IntelliJ IDEA so that I wonder is there any other way for me to check what’s inside each data-model?

For your information, I have researched something about how to create the data-model and template under Getting Started.

AFAK, if the object exported to template conform to the JavaBean spec, I can get the attribute by the variable name. For example, for the Class like below,

 * Product bean; note that it must be a public class!
public class Product {

    private String url;
    private String name;

    // As per the JavaBeans spec., this defines the "url" bean property
    // It must be public!
    public String getUrl() {
        return url;

    public void setUrl(String url) {
        this.url = url;

    // As per the JavaBean spec., this defines the "name" bean property
    // It must be public!
    public String getName() {
        return name;

    public void setName(String name) { = name;


I can get the attribute of data-model like below,

  <h1>Welcome ${user}!</h1>
  <p>Our latest product:
  <a target="_blank" rel="nofollow" href="${latestProduct.url}">${}</a>!

However, why does in Teamcity notification template can work? I haven’t saw neither getName method or name variable at

SBuiltType inherits getName() from BuildTypeIdentity, so that’s why works.