All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.relayr.java.api.RuleTemplateApi Maven / Gradle / Ivy

package io.relayr.java.api;

import java.util.List;

import io.relayr.java.helper.observer.ResponseObserver;
import io.relayr.java.model.rules.AppliedTemplate;
import io.relayr.java.model.rules.Template;
import io.relayr.java.model.rules.TemplateInfo;
import io.relayr.java.model.rules.TemplateParameters;
import retrofit.client.Response;
import retrofit.http.Body;
import retrofit.http.DELETE;
import retrofit.http.GET;
import retrofit.http.PATCH;
import retrofit.http.POST;
import retrofit.http.Path;
import rx.Observable;
import rx.Observer;

/**
 * Provides an API for the create of Rule Engine Rules on the base of pre made templates
 */
public interface RuleTemplateApi {

    /**
     * @param projectId
     * @return a list of templates which are associated with this project
     */
    @GET("/projects/{id}/templates")
    Observable> getTemplates(@Path("id") String projectId);

    /**
     * @param projectId
     * @param templateId
     * @return detailed view on a template in a project. Also provides the latest version of this template (if it exists)
     */
    @GET("/projects/{id}/templates/{templateId}")
    Observable getTemplate(@Path("id") String projectId,
                                         @Path("templateId") String templateId);

    /**
     * @param projectId
     * @param templateId
     * @return a list of all the versions which exist for one template. This list can be empty if no version has been created yet.
     */
    @GET("/projects/{id}/templates/{templateId}/versions")
    Observable> getTemplateVersions(@Path("id") String projectId,
                                                   @Path("templateId") String templateId);

    /**
     * @param projectId
     * @param templateId
     * @param templateVersionId
     * @return the details about a template version
     */
    @GET("/projects/{id}/templates/{templateId}/versions/{templateVersionId}")
    Observable