Extension interface implements one of these marker interfaces. ServerExtension and AgentExtension are used to mark server and agent side extensions correspondingly. TeamCityExtension is the base interface for ServerExtension and AgentExtension. Thus you can take a list of all available extensions in TeamCity by taking a look at interfaces which extend these marker interfaces.

Registering custom extension

There are two ways to register custom extension:

define a bean in the Spring context which implements extension interface, in this case your extension will be loaded automatically

Allows adding additional parameters available for a build. It differs from ParametersPreprocessor in the way that the parameters added by BuildParametersProvider will be available in a popup showing available parameters, and will be considered when requirements are calculated.