content: package alien4cloud.rest.plugin;
  
  import java.util.List;
  
  import javax.annotation.Resource;
  
  import org.springframework.http.MediaType;
  import org.springframework.security.access.prepost.PreAuthorize;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RequestMethod;
  import org.springframework.web.bind.annotation.RequestParam;
  import org.springframework.web.bind.annotation.RestController;
  
  import alien4cloud.plugin.PluginManager;
  import alien4cloud.plugin.model.PluginComponent;
  import alien4cloud.rest.model.RestResponse;
  import alien4cloud.rest.model.RestResponseBuilder;
  import io.swagger.annotations.ApiParam;
  import springfox.documentation.annotations.ApiIgnore;
  
  @RestController
  @RequestMapping(value = { "/rest/plugincomponents", "/rest/v1/plugincomponents", "/rest/latest/plugincomponents" }, produces = MediaType.APPLICATION_JSON_VALUE)
  @ApiIgnore
  public class PluginComponentController {
      @Resource
      private PluginManager pluginManager;
  
      @RequestMapping(method = RequestMethod.GET)
      @PreAuthorize("hasAuthority('ADMIN')")
      public RestResponse<List<PluginComponent>> list(@ApiParam(value = "Type of plugin component to query for.", required = true) @RequestParam String type) {
          return RestResponseBuilder.<List<PluginComponent>> builder().data(pluginManager.getPluginComponents(type)).build();
      }
  }
  