Package com.xebialabs.xlrelease.api.v1

## Interface ApplicationApi

- All Superinterfaces:
    `ApiService`

      @Path("/api/v1/applications")
      @Consumes("application/json")
      @Produces("application/json")
      public interface ApplicationApi
      extends ApiService

- - ### Field Summary

    - ### Fields inherited from interface com.xebialabs.xlrelease.api.ApiService

      `DEFAULT_RESULTS_PER_PAGE, DEFAULT_RESULTS_PER_PAGE_STRING, DEPTH, ORDER_BY, PAGE, PAGE_IS_OFFSET, RESULTS_PER_PAGE, ROLE_IDS_DATA`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Application` | `create​(Application application)` | Creates a new application.
    `ApplicationView` | `createApplication​(ApplicationForm applicationForm)` |
    `void` | `deleteApplication​(java.lang.String applicationId)` | Deletes an application.
    `ApplicationView` | `getApplication​(java.lang.String applicationId)` |
    `Application` | `getById​(java.lang.String applicationId)` | Gets an application by id.
    `java.util.List<Application>` | `search​(ApplicationFilters filters)` | Searches applications by filters.
    `java.util.List<ApplicationView>` | `searchApplications​(ApplicationFilters applicationFilters)` |
    `default java.lang.String` | `serviceName()` |
    `Application` | `update​(Application application)` | Updates an existing application.
    `ApplicationView` | `updateApplication​(java.lang.String applicationId, ApplicationForm applicationForm)` |

- - ### Method Detail

    - #### serviceName

          default java.lang.String serviceName()

      Specified by:
        `serviceName` in interface `ApiService`

    - #### createApplication

          @POST
          ApplicationView createApplication​(ApplicationForm applicationForm)

    - #### getApplication

          @GET
          @Path("/{applicationId:.*/Application[^/]*}")
          ApplicationView getApplication​(@PathParam("applicationId")
                                         java.lang.String applicationId)

    - #### updateApplication

          @PUT
          @Path("/{applicationId:.*/Application[^/]*}")
          ApplicationView updateApplication​(@PathParam("applicationId")
                                            java.lang.String applicationId,
                                            ApplicationForm applicationForm)

    - #### searchApplications

          @POST
          @Path("/search")
          java.util.List<ApplicationView> searchApplications​(ApplicationFilters applicationFilters)

    - #### deleteApplication

          @DELETE
          @Path("/{applicationId:.*/Application[^/]*}")
          void deleteApplication​(@PathParam("applicationId")
                                 java.lang.String applicationId)

      Deletes an application.
      Parameters:
        `applicationId` - the application identifier

    - #### create

          Application create​(Application application)

      Creates a new application.
      Parameters:
        `application` - an `Application` object describing the new application
      Returns:
        created `Application` object

    - #### getById

          Application getById​(java.lang.String applicationId)

      Gets an application by id.
      Parameters:
        `applicationId` - the application identifier
      Returns:
        found `Application` object

    - #### update

          Application update​(Application application)

      Updates an existing application.
      Parameters:
        `application` - an `Application` object describing the new properties of the application
      Returns:
        updated `Application` object

    - #### search

          java.util.List<Application> search​(ApplicationFilters filters)

      Searches applications by filters.
      Parameters:
        `filters` - an `ApplicationFilters` object describing the search criteria
      Returns:
        list of matching `Application`s