You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2015/04/28 16:05:20 UTC
[46/50] [abbrv] incubator-nifi git commit: NIFI-292: - Annotating
endpoints using swagger. - Started building the template for the REST
documentation.
NIFI-292:
- Annotating endpoints using swagger.
- Started building the template for the REST documentation.
NIFI-292:
- Continuing to annotate endpoints using swagger.
- Continuing to build the templates for the REST documentation.
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/180534b1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/180534b1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/180534b1
Branch: refs/heads/NIFI-292
Commit: 180534b178220970db481be846b5f1b5d784e36d
Parents: 6c3256e
Author: Matt Gilman <ma...@gmail.com>
Authored: Fri Apr 24 14:45:18 2015 -0400
Committer: Matt Gilman <ma...@gmail.com>
Committed: Tue Apr 28 07:28:10 2015 -0400
----------------------------------------------------------------------
.../nifi-web/nifi-web-api/pom.xml | 57 ++-
.../nifi/web/api/BulletinBoardResource.java | 5 +
.../apache/nifi/web/api/ClusterResource.java | 495 +++++++++++++++++--
.../apache/nifi/web/api/ConnectionResource.java | 167 ++++++-
.../apache/nifi/web/api/ControllerResource.java | 439 +++++++++++++++-
.../nifi/web/api/ControllerServiceResource.java | 2 +
.../org/apache/nifi/web/api/FunnelResource.java | 2 +
.../apache/nifi/web/api/HistoryResource.java | 2 +
.../apache/nifi/web/api/InputPortResource.java | 2 +
.../org/apache/nifi/web/api/LabelResource.java | 2 +
.../org/apache/nifi/web/api/NodeResource.java | 2 +
.../apache/nifi/web/api/OutputPortResource.java | 2 +
.../nifi/web/api/ProcessGroupResource.java | 77 +++
.../apache/nifi/web/api/ProcessorResource.java | 94 ++++
.../apache/nifi/web/api/ProvenanceResource.java | 2 +
.../web/api/RemoteProcessGroupResource.java | 2 +
.../nifi/web/api/ReportingTaskResource.java | 2 +
.../apache/nifi/web/api/SnippetResource.java | 2 +
.../nifi/web/api/SystemDiagnosticsResource.java | 5 +
.../apache/nifi/web/api/TemplateResource.java | 2 +
.../apache/nifi/web/api/UserGroupResource.java | 2 +
.../org/apache/nifi/web/api/UserResource.java | 2 +
.../src/main/resources/templates/endpoint.hbs | 61 +++
.../src/main/resources/templates/example.hbs | 16 +
.../src/main/resources/templates/index.html.hbs | 355 +++++++++++++
.../src/main/resources/templates/operation.hbs | 112 +++++
.../src/main/resources/templates/type.hbs | 51 ++
27 files changed, 1907 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/180534b1/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
index 5a87ff8..3639016 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
@@ -89,6 +89,44 @@
<reuseForks>false</reuseForks>
</configuration>
</plugin>
+ <plugin>
+ <groupId>com.github.kongchen</groupId>
+ <artifactId>swagger-maven-plugin</artifactId>
+ <version>3.0-M1</version>
+ <configuration>
+ <apiSources>
+ <apiSource>
+ <locations>org.apache.nifi.web.api</locations>
+ <schemes>http,https</schemes>
+ <basePath>/nifi-api</basePath>
+ <info>
+ <title>NiFi Rest Api</title>
+ <version>${project.version}</version>
+ <!--<description>This is a sample for swagger-maven-plugin</description>-->
+ <contact>
+ <email>dev@nifi.incubator.apache.org</email>
+ <url>https://nifi.incubator.apache.org/</url>
+ </contact>
+ <license>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
+ <name>Apache 2.0</name>
+ </license>
+ </info>
+ <templatePath>classpath:/templates/index.html.hbs</templatePath>
+ <outputPath>${project.build.directory}/${project.artifactId}-${project.version}/docs/rest-api/index.html</outputPath>
+ <swaggerDirectory>${project.build.directory}/swagger-ui</swaggerDirectory>
+ </apiSource>
+ </apiSources>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>compile</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
<dependencies>
@@ -119,15 +157,8 @@
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
- <artifactId>nifi-client-dto</artifactId>
- <classifier>sources</classifier>
- <scope>provided</scope>
- <optional>true</optional>
- <version>0.1.0-incubating-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
<artifactId>nifi-data-provenance-utils</artifactId>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
@@ -198,6 +229,11 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>com.wordnik</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>1.5.3-M1</version>
+ </dependency>
+ <dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<scope>provided</scope>
@@ -208,6 +244,11 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<scope>provided</scope>
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/180534b1/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java
index 7c59cea..d496ed7 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/BulletinBoardResource.java
@@ -16,8 +16,11 @@
*/
package org.apache.nifi.web.api;
+import com.wordnik.swagger.annotations.Api;
+import javax.ws.rs.Consumes;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
+import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
@@ -40,6 +43,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
/**
* RESTful endpoint for managing a Template.
*/
+@Api(hidden = true)
public class BulletinBoardResource extends ApplicationResource {
private static final Logger logger = LoggerFactory.getLogger(BulletinBoardResource.class);
@@ -59,6 +63,7 @@ public class BulletinBoardResource extends ApplicationResource {
* @return A bulletinBoardEntity.
*/
@GET
+ @Consumes(MediaType.WILDCARD)
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(BulletinBoardEntity.class)
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/180534b1/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java
index b080fc6..7d76179 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ClusterResource.java
@@ -69,6 +69,12 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import com.sun.jersey.api.core.ResourceContext;
+import com.wordnik.swagger.annotations.Api;
+import com.wordnik.swagger.annotations.ApiOperation;
+import com.wordnik.swagger.annotations.ApiParam;
+import com.wordnik.swagger.annotations.ApiResponse;
+import com.wordnik.swagger.annotations.ApiResponses;
+import com.wordnik.swagger.annotations.Authorization;
import org.apache.nifi.web.api.dto.status.ClusterProcessGroupStatusDTO;
import org.apache.nifi.web.api.entity.ClusterProcessGroupStatusEntity;
import org.codehaus.enunciate.jaxrs.TypeHint;
@@ -77,6 +83,10 @@ import org.codehaus.enunciate.jaxrs.TypeHint;
* RESTful endpoint for managing a cluster.
*/
@Path("/cluster")
+@Api(
+ value = "/cluster",
+ description = "Provides access to the cluster of Nodes that comprise this NiFi"
+)
public class ClusterResource extends ApplicationResource {
@Context
@@ -90,6 +100,10 @@ public class ClusterResource extends ApplicationResource {
* @return node resource
*/
@Path("/nodes")
+ @ApiOperation(
+ value = "Gets the node resource",
+ response = NodeResource.class
+ )
public NodeResource getNodeResource() {
return resourceContext.getResource(NodeResource.class);
}
@@ -101,11 +115,34 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterStatusEntity
*/
@GET
+ @Consumes(MediaType.WILDCARD)
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Path("/status")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterStatusEntity.class)
- public Response getClusterStatus(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId) {
+ @ApiOperation(
+ value = "Gets the status of the cluster",
+ response = ClusterStatusEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getClusterStatus(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId) {
if (properties.isClusterManager()) {
@@ -134,7 +171,8 @@ public class ClusterResource extends ApplicationResource {
* @return An OK response with an empty entity body.
*/
@HEAD
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response getClusterHead() {
if (properties.isClusterManager()) {
return Response.ok().build();
@@ -150,10 +188,34 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterEntity.class)
- public Response getCluster(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId) {
+ @ApiOperation(
+ value = "Gets the contents of the cluster",
+ notes = "Returns the contents of the cluster including all nodes and their status.",
+ response = ClusterEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getCluster(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId) {
if (properties.isClusterManager()) {
@@ -182,11 +244,35 @@ public class ClusterResource extends ApplicationResource {
* @return Nodes that match the specified criteria
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/search-results")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterSearchResultsEntity.class)
- public Response searchCluster(@QueryParam("q") @DefaultValue(StringUtils.EMPTY) String value) {
+ @ApiOperation(
+ value = "Searches the cluster for a node with the specified address",
+ response = ClusterSearchResultsEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response searchCluster(
+ @ApiParam(
+ value = "Node address to search for",
+ required = true
+ )
+ @QueryParam("q") @DefaultValue(StringUtils.EMPTY) String value) {
// ensure this is the cluster manager
if (properties.isClusterManager()) {
@@ -233,11 +319,41 @@ public class ClusterResource extends ApplicationResource {
* @return A processorEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/processors/{id}")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ProcessorEntity.class)
- public Response getProcessor(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets the specified processor",
+ response = ProcessorEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getProcessor(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The processor id",
+ required = true
+ )
+ @PathParam("id") String id) {
+
if (!properties.isClusterManager()) {
final ProcessorDTO dto = serviceFacade.getProcessor(id);
@@ -270,7 +386,7 @@ public class ClusterResource extends ApplicationResource {
*/
@PUT
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/processors/{id}")
@PreAuthorize("hasAnyRole('ROLE_DFM')")
@TypeHint(ProcessorEntity.class)
@@ -321,13 +437,39 @@ public class ClusterResource extends ApplicationResource {
*/
@PUT
@Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/processors/{id}")
@PreAuthorize("hasAnyRole('ROLE_DFM')")
@TypeHint(ProcessorEntity.class)
+ @ApiOperation(
+ value = "Updates processor annotation data",
+ response = ProcessorEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
public Response updateProcessor(
@Context HttpServletRequest httpServletRequest,
+ @ApiParam(
+ value = "The processor id",
+ required = true
+ )
@PathParam("id") final String processorId,
+ @ApiParam(
+ value = "The processor configuration details. The only configuration that will be honored at this endpoint is the processor annontation data.",
+ required = true
+ )
final ProcessorEntity processorEntity) {
if (!properties.isClusterManager()) {
@@ -392,11 +534,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterProcessorStatusEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/processors/{id}/status")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterProcessorStatusEntity.class)
- public Response getProcessorStatus(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets the processor status across the cluster",
+ response = ClusterProcessorStatusEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getProcessorStatus(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The processor id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
@@ -426,11 +597,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterProcessorStatusHistoryEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/processors/{id}/status/history")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterStatusHistoryEntity.class)
- public Response getProcessorStatusHistory(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets processor status history across the cluster",
+ response = ClusterStatusHistoryEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getProcessorStatusHistory(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The processor id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
final ClusterStatusHistoryDTO dto = serviceFacade.getClusterProcessorStatusHistory(id);
@@ -459,11 +659,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterProcessorStatusEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/connections/{id}/status")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterConnectionStatusEntity.class)
- public Response getConnectionStatus(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets connection status across the cluster",
+ response = ClusterConnectionStatusEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getConnectionStatus(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The connection id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
@@ -493,11 +722,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterProcessorStatusHistoryEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/connections/{id}/status/history")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterStatusHistoryEntity.class)
- public Response getConnectionStatusHistory(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets connection status history across the cluster",
+ response = ClusterStatusHistoryEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getConnectionStatusHistory(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The connection id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
final ClusterStatusHistoryDTO dto = serviceFacade.getClusterConnectionStatusHistory(id);
@@ -526,11 +784,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterProcessGroupStatusEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/process-groups/{id}/status")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
- @TypeHint(ClusterConnectionStatusEntity.class)
- public Response getProcessGroupStatus(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @TypeHint(ClusterProcessGroupStatusEntity.class)
+ @ApiOperation(
+ value = "Gets process group status across the cluster",
+ response = ClusterProcessGroupStatusEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getProcessGroupStatus(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The process group id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
@@ -560,11 +847,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterProcessGroupStatusHistoryEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/process-groups/{id}/status/history")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterStatusHistoryEntity.class)
- public Response getProcessGroupStatusHistory(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets process group status history across the cluster",
+ response = ClusterStatusHistoryEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getProcessGroupStatusHistory(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The process group id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
final ClusterStatusHistoryDTO dto = serviceFacade.getClusterProcessGroupStatusHistory(id);
@@ -593,11 +909,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterRemoteProcessGroupStatusEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/remote-process-groups/{id}/status")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterRemoteProcessGroupStatusEntity.class)
- public Response getRemoteProcessGroupStatus(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets remote process group status across the cluster",
+ response = ClusterRemoteProcessGroupStatusEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getRemoteProcessGroupStatus(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The remote process group id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
@@ -627,11 +972,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterPortStatusEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/input-ports/{id}/status")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterPortStatusEntity.class)
- public Response getInputPortStatus(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets input port status across the cluster",
+ response = ClusterPortStatusEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getInputPortStatus(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The input port id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
@@ -661,11 +1035,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterPortStatusEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/output-ports/{id}/status")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterPortStatusEntity.class)
- public Response getOutputPortStatus(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets output port status across the cluster",
+ response = ClusterPortStatusEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getOutputPortStatus(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The output port id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
@@ -695,11 +1098,40 @@ public class ClusterResource extends ApplicationResource {
* @return A clusterRemoteProcessGroupStatusHistoryEntity
*/
@GET
- @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
+ @Consumes(MediaType.WILDCARD)
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("/remote-process-groups/{id}/status/history")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ClusterStatusHistoryEntity.class)
- public Response getRemoteProcessGroupStatusHistory(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets the remote process group status history across the cluster",
+ response = ClusterStatusHistoryEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "DFM", type = "ROLE_DFM"),
+ @Authorization(value = "Admin", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getRemoteProcessGroupStatusHistory(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The remote process group id",
+ required = true
+ )
+ @PathParam("id") String id) {
if (properties.isClusterManager()) {
final ClusterStatusHistoryDTO dto = serviceFacade.getClusterRemoteProcessGroupStatusHistory(id);
@@ -721,6 +1153,7 @@ public class ClusterResource extends ApplicationResource {
}
// setters
+
public void setServiceFacade(NiFiServiceFacade serviceFacade) {
this.serviceFacade = serviceFacade;
}
http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/180534b1/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java
----------------------------------------------------------------------
diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java
index 137cc07..1e06fa4 100644
--- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java
+++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/ConnectionResource.java
@@ -16,6 +16,12 @@
*/
package org.apache.nifi.web.api;
+import com.wordnik.swagger.annotations.Api;
+import com.wordnik.swagger.annotations.ApiOperation;
+import com.wordnik.swagger.annotations.ApiParam;
+import com.wordnik.swagger.annotations.ApiResponse;
+import com.wordnik.swagger.annotations.ApiResponses;
+import com.wordnik.swagger.annotations.Authorization;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
@@ -73,6 +79,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
/**
* RESTful endpoint for managing a Connection.
*/
+@Api(hidden = true)
public class ConnectionResource extends ApplicationResource {
private static final Logger logger = LoggerFactory.getLogger(ConnectionResource.class);
@@ -111,10 +118,33 @@ public class ConnectionResource extends ApplicationResource {
* @return A connectionsEntity.
*/
@GET
+ @Consumes(MediaType.WILDCARD)
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ConnectionsEntity.class)
- public Response getConnections(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId) {
+ @ApiOperation(
+ value = "Gets all connections",
+ response = ConnectionsEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "Data Flow Manager", type = "ROLE_DFM"),
+ @Authorization(value = "Administrator", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getConnections(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId) {
// replicate if cluster manager
if (properties.isClusterManager()) {
@@ -145,11 +175,39 @@ public class ConnectionResource extends ApplicationResource {
* @return A connectionEntity.
*/
@GET
+ @Consumes(MediaType.WILDCARD)
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Path("/{id}")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(ConnectionEntity.class)
- public Response getConnection(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiOperation(
+ value = "Gets a connection",
+ response = ConnectionEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "Data Flow Manager", type = "ROLE_DFM"),
+ @Authorization(value = "Administrator", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getConnection(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The connection id",
+ required = true
+ )
@PathParam("id") String id) {
// replicate if cluster manager
@@ -181,11 +239,40 @@ public class ConnectionResource extends ApplicationResource {
* @return A statusHistoryEntity.
*/
@GET
+ @Consumes(MediaType.WILDCARD)
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Path("/{id}/status/history")
@PreAuthorize("hasAnyRole('ROLE_MONITOR', 'ROLE_DFM', 'ROLE_ADMIN')")
@TypeHint(StatusHistoryEntity.class)
- public Response getConnectionStatusHistory(@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId, @PathParam("id") String id) {
+ @ApiOperation(
+ value = "Gets the status history for a connection",
+ response = StatusHistoryEntity.class,
+ authorizations = {
+ @Authorization(value = "Read Only", type = "ROLE_MONITOR"),
+ @Authorization(value = "Data Flow Manager", type = "ROLE_DFM"),
+ @Authorization(value = "Administrator", type = "ROLE_ADMIN")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
+ public Response getConnectionStatusHistory(
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
+ @QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The connection id",
+ required = true
+ )
+ @PathParam("id") String id) {
// replicate if cluster manager
if (properties.isClusterManager()) {
@@ -370,8 +457,28 @@ public class ConnectionResource extends ApplicationResource {
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@PreAuthorize("hasRole('ROLE_DFM')")
@TypeHint(ConnectionEntity.class)
+ @ApiOperation(
+ value = "Creates a connection",
+ response = ConnectionEntity.class,
+ authorizations = {
+ @Authorization(value = "Data Flow Manager", type = "ROLE_DFM")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
public Response createConnection(
@Context HttpServletRequest httpServletRequest,
+ @ApiParam(
+ value = "The connection configuration details",
+ required = true
+ )
ConnectionEntity connectionEntity) {
if (connectionEntity == null || connectionEntity.getConnection() == null) {
@@ -613,9 +720,33 @@ public class ConnectionResource extends ApplicationResource {
@Path("/{id}")
@PreAuthorize("hasRole('ROLE_DFM')")
@TypeHint(ConnectionEntity.class)
+ @ApiOperation(
+ value = "Updates a connection",
+ response = ConnectionEntity.class,
+ authorizations = {
+ @Authorization(value = "Data Flow Manager", type = "ROLE_DFM")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
public Response updateConnection(
@Context HttpServletRequest httpServletRequest,
+ @ApiParam(
+ value = "The connection id",
+ required = true
+ )
@PathParam("id") String id,
+ @ApiParam(
+ value = "The connection configuration details",
+ required = true
+ )
ConnectionEntity connectionEntity) {
if (connectionEntity == null || connectionEntity.getConnection() == null) {
@@ -680,14 +811,43 @@ public class ConnectionResource extends ApplicationResource {
* @return An Entity containing the client id and an updated revision.
*/
@DELETE
+ @Consumes(MediaType.WILDCARD)
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
@Path("/{id}")
@PreAuthorize("hasRole('ROLE_DFM')")
@TypeHint(ConnectionEntity.class)
+ @ApiOperation(
+ value = "Deletes a connection",
+ response = ConnectionEntity.class,
+ authorizations = {
+ @Authorization(value = "Data Flow Manager", type = "ROLE_DFM")
+ }
+ )
+ @ApiResponses(
+ value = {
+ @ApiResponse(code = 400, message = "NiFi was unable to complete the request because it was invalid. The request should not be retried without modification."),
+ @ApiResponse(code = 401, message = "Client could not be authenticated."),
+ @ApiResponse(code = 403, message = "Client is not authorized to make this request."),
+ @ApiResponse(code = 404, message = "The specified resource could not be found."),
+ @ApiResponse(code = 409, message = "The request was valid but NiFi was not in the appropriate state to process it. Retrying the same request later may be successful.")
+ }
+ )
public Response deleteRelationshipTarget(
@Context HttpServletRequest httpServletRequest,
+ @ApiParam(
+ value = "The revision is used to verify the client is working with the latest version of the flow",
+ required = false
+ )
@QueryParam(VERSION) LongParameter version,
+ @ApiParam(
+ value = "If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response",
+ required = false
+ )
@QueryParam(CLIENT_ID) @DefaultValue(StringUtils.EMPTY) ClientIdParameter clientId,
+ @ApiParam(
+ value = "The connection id",
+ required = true
+ )
@PathParam("id") String id) {
// replicate if cluster manager
@@ -725,6 +885,7 @@ public class ConnectionResource extends ApplicationResource {
}
// setters
+
public void setServiceFacade(NiFiServiceFacade serviceFacade) {
this.serviceFacade = serviceFacade;
}