code: public Observable<ServiceResponseWithHeaders<ApplicationSummary, ApplicationGetHeaders>> getWithServiceResponseAsync(String applicationId) {
          if (this.client.batchUrl() == null) {
              throw new IllegalArgumentException("Parameter this.client.batchUrl() is required and cannot be null.");
          }
          if (applicationId == null) {
              throw new IllegalArgumentException("Parameter applicationId is required and cannot be null.");
          }
          if (this.client.apiVersion() == null) {
              throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
          }
          final ApplicationGetOptions applicationGetOptions = null;
          Integer timeout = null;
          UUID clientRequestId = null;
          Boolean returnClientRequestId = null;
          DateTime ocpDate = null;
          String parameterizedHost = Joiner.on(", ").join("{batchUrl}", this.client.batchUrl());
          DateTimeRfc1123 ocpDateConverted = null;
          if (ocpDate != null) {
              ocpDateConverted = new DateTimeRfc1123(ocpDate);
          }
          return service.get(applicationId, this.client.apiVersion(), this.client.acceptLanguage(), timeout, clientRequestId, returnClientRequestId, ocpDateConverted, parameterizedHost, this.client.userAgent())
              .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponseWithHeaders<ApplicationSummary, ApplicationGetHeaders>>>() {
                  @Override
                  public Observable<ServiceResponseWithHeaders<ApplicationSummary, ApplicationGetHeaders>> call(Response<ResponseBody> response) {
                      try {
                          ServiceResponseWithHeaders<ApplicationSummary, ApplicationGetHeaders> clientResponse = getDelegate(response);
                          return Observable.just(clientResponse);
                      } catch (Throwable t) {
                          return Observable.error(t);
                      }
                  }
              });
      }
docs: Gets information about the specified application.
  This operation returns only applications and versions that are available for use on compute nodes; that is, that can be used in an application package reference. For administrator information about applications and versions that are not yet available to compute nodes, use the Azure portal or the Azure Resource Manager API.
  
  @param applicationId The ID of the application.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable to the ApplicationSummary object