@Test public void shouldAccessToApiState_asAdmin() { final Response response = envTarget(API+"/state").request().get(); assertEquals(OK_200, response.getStatus()); ApiStateEntity stateEntity = response.readEntity(ApiStateEntity.class); assertNotNull(stateEntity); assertEquals(API, stateEntity.getApiId()); }
@GET @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get the API", notes = "User must have the READ permission on the API_DEFINITION to use this service on a private API.") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) public Response get(@PathParam("api") String api) { ApiEntity apiEntity = apiService.findById(api); if (hasPermission(RolePermission.API_DEFINITION, api, RolePermissionAction.READ)) { setPictures(apiEntity); } else { filterSensitiveData(apiEntity); } return Response .ok(apiEntity) .tag(Long.toString(apiEntity.getUpdatedAt().getTime())) .lastModified(apiEntity.getUpdatedAt()) .build(); }
ApiResource extends AbstractResource { @GET @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get the API", notes = "User must have the READ permission on the API_DEFINITION to use this service on a private API.") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) public Response get(@PathParam("api") String api) { ApiEntity apiEntity = apiService.findById(api); if (hasPermission(RolePermission.API_DEFINITION, api, RolePermissionAction.READ)) { setPictures(apiEntity); } else { filterSensitiveData(apiEntity); } return Response .ok(apiEntity) .tag(Long.toString(apiEntity.getUpdatedAt().getTime())) .lastModified(apiEntity.getUpdatedAt()) .build(); } }
ApiResource extends AbstractResource { @GET @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get the API", notes = "User must have the READ permission on the API_DEFINITION to use this service on a private API.") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) public Response get(@PathParam("api") String api) { ApiEntity apiEntity = apiService.findById(api); if (hasPermission(RolePermission.API_DEFINITION, api, RolePermissionAction.READ)) { setPictures(apiEntity); } else { filterSensitiveData(apiEntity); } return Response .ok(apiEntity) .tag(Long.toString(apiEntity.getUpdatedAt().getTime())) .lastModified(apiEntity.getUpdatedAt()) .build(); }  }
ApiResource extends AbstractResource { @GET @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get the API", notes = "User must have the READ permission on the API_DEFINITION to use this service on a private API.") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) public Response get(@PathParam("api") String api) { ApiEntity apiEntity = apiService.findById(api); if (hasPermission(RolePermission.API_DEFINITION, api, RolePermissionAction.READ)) { setPictures(apiEntity); } else { filterSensitiveData(apiEntity); } return Response .ok(apiEntity) .tag(Long.toString(apiEntity.getUpdatedAt().getTime())) .lastModified(apiEntity.getUpdatedAt()) .build(); }  @GET @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get the API", notes = "User must have the READ permission on the API_DEFINITION to use this service on a private API.") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) Response get(@PathParam("api") String api); @GET @Path("picture") @ApiOperation(value = "Get the API's picture", notes = "User must have the READ permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API's picture"), @ApiResponse(code = 500, message = "Internal server error")}) Response picture(
            @Context Request request,
            @PathParam("api") String api); @GET @Path("background") @ApiOperation(value = "Get the API's background", notes = "User must have the READ permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API's background"), @ApiResponse(code = 500, message = "Internal server error")}) Response background(
            @Context Request request,
            @PathParam("api") String api); @POST @ApiOperation( value = "Manage the API's lifecycle", notes = "User must have the MANAGE_LIFECYCLE permission to use this service") @ApiResponses({ @ApiResponse(code = 204, message = "API's picture"), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response doLifecycleAction(
            @Context HttpHeaders headers,
            @ApiParam(required = true, allowableValues = "START, STOP")
            @QueryParam("action") LifecycleActionParam action,
            @PathParam("api") String api); @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation( value = "Update the API", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully updated", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE), @Permission(value = RolePermission.API_GATEWAY_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response update(
            @Context HttpHeaders headers,
            @ApiParam(name = "api", required = true) @Valid @NotNull final UpdateApiEntity apiToUpdate,
            @PathParam("api") String api); @DELETE @ApiOperation( value = "Delete the API", notes = "User must have the DELETE permission to use this service") @ApiResponses({ @ApiResponse(code = 204, message = "API successfully deleted"), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.DELETE) }) Response delete(@PathParam("api") String api); @POST @Produces(MediaType.APPLICATION_JSON) @Path("deploy") @ApiOperation( value = "Deploy API to gateway instances", notes = "User must have the MANAGE_LIFECYCLE permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully deployed", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response deployAPI(@PathParam("api") String api); @GET @Produces(MediaType.APPLICATION_JSON) @Path("state") @ApiOperation( value = "Get the state of the API", notes = "User must have the MANAGE_LIFECYCLE permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API's state", response = ApiStateEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) ApiStateEntity isAPISynchronized(@PathParam("api") String api); @POST @Consumes @Produces(MediaType.APPLICATION_JSON) @Path("rollback") @ApiOperation( value = "Rollback API to a previous version", notes = "User must have the MANAGE_LIFECYCLE permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully rollbacked", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response rollback(
            @PathParam("api") String api,
            @ApiParam(name = "api", required = true) @Valid @NotNull final UpdateApiEntity apiEntity); @PUT @Produces(MediaType.APPLICATION_JSON) @Path("import") @ApiOperation( value = "Update the API with an existing API definition", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully updated from API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response updateWithDefinition(
        @PathParam("api") String api,
        @ApiParam(name = "definition", required = true) String apiDefinition); @POST @Path("import/swagger") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation( value = "Update the API with an existing Swagger descriptor", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully updated from Swagger descriptor", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response updateWithSwagger(
            @PathParam("api") String api,
            @ApiParam(name = "swagger", required = true) @Valid @NotNull ImportSwaggerDescriptorEntity swaggerDescriptor); @GET @Produces(MediaType.APPLICATION_JSON) @Path("export") @ApiOperation( value = "Export the API definition in JSON format", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.READ) }) Response exportDefinition(
            @PathParam("api") String api,
            @QueryParam("version") @DefaultValue("default") String version,
            @QueryParam("exclude") @DefaultValue("") String exclude); @GET @Produces(MediaType.APPLICATION_JSON) @Path("notifiers") @ApiOperation(value = "List available notifiers for API", notes = "User must have the API_NOTIFICATION[READ] permission to use this service") @Permissions({ @Permission(value = RolePermission.API_NOTIFICATION, acls = RolePermissionAction.READ) }) List<NotifierEntity> getNotifiers(@PathParam("api") String api); @POST @Produces(MediaType.APPLICATION_JSON) @Path("import-path-mappings") @ApiOperation(value = "Import path mappings from a page", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 201, message = "Path mappings successfully imported", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response importPathMappingsFromPage(@PathParam("api") String api, @QueryParam("page") @NotNull String page); @GET @Produces(MediaType.APPLICATION_JSON) @Path("quality") @ApiOperation(value = "Get the quality metrics of the API") ApiQualityMetricsEntity getQualityMetrics(@PathParam("api") String api); @POST @Path("/messages") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Send a message to existing consumers of an API", notes = "User must have the API_MESSAGE[CREATE] permission to use this service") @Permissions({ @Permission(value = RolePermission.API_MESSAGE, acls = RolePermissionAction.CREATE) }) Response create(@PathParam("api") String api, final MessageEntity message); @GET @Path("headers") @ApiOperation(value = "Get the portal API headers values") @Produces(MediaType.APPLICATION_JSON) List<ApiHeaderEntity> getHeaders(@PathParam("api") String api); @POST @Path("reviews") @ApiOperation( value = "Manage the API's review state", notes = "User must have the API_DEFINITION[UPDATE] or API_REVIEWS[UPDATE] permission to use this service (depending on the action)") @ApiResponses({ @ApiResponse(code = 204, message = "Updated API"), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE), @Permission(value = RolePermission.API_REVIEWS, acls = RolePermissionAction.UPDATE) }) Response doReviewAction(
            @Context HttpHeaders headers,
            @ApiParam(required = true, allowableValues = "ASK")
            @NotNull @Valid @QueryParam("action") ReviewActionParam action,
            @PathParam("api") String api,
            @ApiParam(name = "review") @Valid final ReviewEntity reviewEntity); @POST @Produces(MediaType.APPLICATION_JSON) @Path("duplicate") @ApiOperation( value = "Duplicate the API", notes = "User must have the MANAGE_API create permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.READ), @Permission(value = RolePermission.ENVIRONMENT_API, acls = RolePermissionAction.CREATE) }) Response duplicateAPI(@PathParam("api") String api, @ApiParam(name = "api", required = true)
            @Valid @NotNull final DuplicateApiEntity duplicateApiEntity); @Path("keys") ApiKeysResource getApiKeyResource(); @Path("members") ApiMembersResource getApiMembersResource(); @Path("analytics") ApiAnalyticsResource getApiAnalyticsResource(); @Path("logs") ApiLogsResource getApiLogsResource(); @Path("health") ApiHealthResource getApiHealthResource(); @Path("pages") ApiPagesResource getApiPagesResource(); @Path("events") ApiEventsResource getApiEventsResource(); @Path("plans") ApiPlansResource getApiPlansResource(); @Path("subscriptions") ApiSubscriptionsResource getApiSubscriptionsResource(); @Path("subscribers") ApiSubscribersResource geApiSubscribersResource(); @Path("metadata") ApiMetadataResource getApiMetadataResource(); @Path("ratings") ApiRatingResource getRatingResource(); @Path("audit") ApiAuditResource getApiAuditResource(); @Path("notificationsettings") ApiNotificationSettingsResource getNotificationSettingsResource(); @Path("alerts") ApiAlertsResource getApiAlertsResource(); @Path("quality-rules") ApiQualityRulesResource getApiQualityRulesResource(); }
ApiResource extends AbstractResource { @GET @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get the API", notes = "User must have the READ permission on the API_DEFINITION to use this service on a private API.") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) public Response get(@PathParam("api") String api) { ApiEntity apiEntity = apiService.findById(api); if (hasPermission(RolePermission.API_DEFINITION, api, RolePermissionAction.READ)) { setPictures(apiEntity); } else { filterSensitiveData(apiEntity); } return Response .ok(apiEntity) .tag(Long.toString(apiEntity.getUpdatedAt().getTime())) .lastModified(apiEntity.getUpdatedAt()) .build(); }  @GET @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Get the API", notes = "User must have the READ permission on the API_DEFINITION to use this service on a private API.") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) Response get(@PathParam("api") String api); @GET @Path("picture") @ApiOperation(value = "Get the API's picture", notes = "User must have the READ permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API's picture"), @ApiResponse(code = 500, message = "Internal server error")}) Response picture(
            @Context Request request,
            @PathParam("api") String api); @GET @Path("background") @ApiOperation(value = "Get the API's background", notes = "User must have the READ permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API's background"), @ApiResponse(code = 500, message = "Internal server error")}) Response background(
            @Context Request request,
            @PathParam("api") String api); @POST @ApiOperation( value = "Manage the API's lifecycle", notes = "User must have the MANAGE_LIFECYCLE permission to use this service") @ApiResponses({ @ApiResponse(code = 204, message = "API's picture"), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response doLifecycleAction(
            @Context HttpHeaders headers,
            @ApiParam(required = true, allowableValues = "START, STOP")
            @QueryParam("action") LifecycleActionParam action,
            @PathParam("api") String api); @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation( value = "Update the API", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully updated", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE), @Permission(value = RolePermission.API_GATEWAY_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response update(
            @Context HttpHeaders headers,
            @ApiParam(name = "api", required = true) @Valid @NotNull final UpdateApiEntity apiToUpdate,
            @PathParam("api") String api); @DELETE @ApiOperation( value = "Delete the API", notes = "User must have the DELETE permission to use this service") @ApiResponses({ @ApiResponse(code = 204, message = "API successfully deleted"), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.DELETE) }) Response delete(@PathParam("api") String api); @POST @Produces(MediaType.APPLICATION_JSON) @Path("deploy") @ApiOperation( value = "Deploy API to gateway instances", notes = "User must have the MANAGE_LIFECYCLE permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully deployed", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response deployAPI(@PathParam("api") String api); @GET @Produces(MediaType.APPLICATION_JSON) @Path("state") @ApiOperation( value = "Get the state of the API", notes = "User must have the MANAGE_LIFECYCLE permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API's state", response = ApiStateEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) ApiStateEntity isAPISynchronized(@PathParam("api") String api); @POST @Consumes @Produces(MediaType.APPLICATION_JSON) @Path("rollback") @ApiOperation( value = "Rollback API to a previous version", notes = "User must have the MANAGE_LIFECYCLE permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully rollbacked", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response rollback(
            @PathParam("api") String api,
            @ApiParam(name = "api", required = true) @Valid @NotNull final UpdateApiEntity apiEntity); @PUT @Produces(MediaType.APPLICATION_JSON) @Path("import") @ApiOperation( value = "Update the API with an existing API definition", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully updated from API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response updateWithDefinition(
        @PathParam("api") String api,
        @ApiParam(name = "definition", required = true) String apiDefinition); @POST @Path("import/swagger") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation( value = "Update the API with an existing Swagger descriptor", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API successfully updated from Swagger descriptor", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response updateWithSwagger(
            @PathParam("api") String api,
            @ApiParam(name = "swagger", required = true) @Valid @NotNull ImportSwaggerDescriptorEntity swaggerDescriptor); @GET @Produces(MediaType.APPLICATION_JSON) @Path("export") @ApiOperation( value = "Export the API definition in JSON format", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.READ) }) Response exportDefinition(
            @PathParam("api") String api,
            @QueryParam("version") @DefaultValue("default") String version,
            @QueryParam("exclude") @DefaultValue("") String exclude); @GET @Produces(MediaType.APPLICATION_JSON) @Path("notifiers") @ApiOperation(value = "List available notifiers for API", notes = "User must have the API_NOTIFICATION[READ] permission to use this service") @Permissions({ @Permission(value = RolePermission.API_NOTIFICATION, acls = RolePermissionAction.READ) }) List<NotifierEntity> getNotifiers(@PathParam("api") String api); @POST @Produces(MediaType.APPLICATION_JSON) @Path("import-path-mappings") @ApiOperation(value = "Import path mappings from a page", notes = "User must have the MANAGE_API permission to use this service") @ApiResponses({ @ApiResponse(code = 201, message = "Path mappings successfully imported", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE) }) Response importPathMappingsFromPage(@PathParam("api") String api, @QueryParam("page") @NotNull String page); @GET @Produces(MediaType.APPLICATION_JSON) @Path("quality") @ApiOperation(value = "Get the quality metrics of the API") ApiQualityMetricsEntity getQualityMetrics(@PathParam("api") String api); @POST @Path("/messages") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Send a message to existing consumers of an API", notes = "User must have the API_MESSAGE[CREATE] permission to use this service") @Permissions({ @Permission(value = RolePermission.API_MESSAGE, acls = RolePermissionAction.CREATE) }) Response create(@PathParam("api") String api, final MessageEntity message); @GET @Path("headers") @ApiOperation(value = "Get the portal API headers values") @Produces(MediaType.APPLICATION_JSON) List<ApiHeaderEntity> getHeaders(@PathParam("api") String api); @POST @Path("reviews") @ApiOperation( value = "Manage the API's review state", notes = "User must have the API_DEFINITION[UPDATE] or API_REVIEWS[UPDATE] permission to use this service (depending on the action)") @ApiResponses({ @ApiResponse(code = 204, message = "Updated API"), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.UPDATE), @Permission(value = RolePermission.API_REVIEWS, acls = RolePermissionAction.UPDATE) }) Response doReviewAction(
            @Context HttpHeaders headers,
            @ApiParam(required = true, allowableValues = "ASK")
            @NotNull @Valid @QueryParam("action") ReviewActionParam action,
            @PathParam("api") String api,
            @ApiParam(name = "review") @Valid final ReviewEntity reviewEntity); @POST @Produces(MediaType.APPLICATION_JSON) @Path("duplicate") @ApiOperation( value = "Duplicate the API", notes = "User must have the MANAGE_API create permission to use this service") @ApiResponses({ @ApiResponse(code = 200, message = "API definition", response = ApiEntity.class), @ApiResponse(code = 500, message = "Internal server error")}) @Permissions({ @Permission(value = RolePermission.API_DEFINITION, acls = RolePermissionAction.READ), @Permission(value = RolePermission.ENVIRONMENT_API, acls = RolePermissionAction.CREATE) }) Response duplicateAPI(@PathParam("api") String api, @ApiParam(name = "api", required = true)
            @Valid @NotNull final DuplicateApiEntity duplicateApiEntity); @Path("keys") ApiKeysResource getApiKeyResource(); @Path("members") ApiMembersResource getApiMembersResource(); @Path("analytics") ApiAnalyticsResource getApiAnalyticsResource(); @Path("logs") ApiLogsResource getApiLogsResource(); @Path("health") ApiHealthResource getApiHealthResource(); @Path("pages") ApiPagesResource getApiPagesResource(); @Path("events") ApiEventsResource getApiEventsResource(); @Path("plans") ApiPlansResource getApiPlansResource(); @Path("subscriptions") ApiSubscriptionsResource getApiSubscriptionsResource(); @Path("subscribers") ApiSubscribersResource geApiSubscribersResource(); @Path("metadata") ApiMetadataResource getApiMetadataResource(); @Path("ratings") ApiRatingResource getRatingResource(); @Path("audit") ApiAuditResource getApiAuditResource(); @Path("notificationsettings") ApiNotificationSettingsResource getNotificationSettingsResource(); @Path("alerts") ApiAlertsResource getApiAlertsResource(); @Path("quality-rules") ApiQualityRulesResource getApiQualityRulesResource();  }