code: public Observable<ServiceResponse<List<ModelTrainingInfo>>> getStatusWithServiceResponseAsync(UUID appId, String versionId) {
          if (this.client.endpoint() == null) {
              throw new IllegalArgumentException("Parameter this.client.endpoint() is required and cannot be null.");
          }
          if (appId == null) {
              throw new IllegalArgumentException("Parameter appId is required and cannot be null.");
          }
          if (versionId == null) {
              throw new IllegalArgumentException("Parameter versionId is required and cannot be null.");
          }
          String parameterizedHost = Joiner.on(", ").join("{Endpoint}", this.client.endpoint());
          return service.getStatus(appId, versionId, this.client.acceptLanguage(), parameterizedHost, this.client.userAgent())
              .flatMap(new Func1<Response<ResponseBody>, Observable<ServiceResponse<List<ModelTrainingInfo>>>>() {
                  @Override
                  public Observable<ServiceResponse<List<ModelTrainingInfo>>> call(Response<ResponseBody> response) {
                      try {
                          ServiceResponse<List<ModelTrainingInfo>> clientResponse = getStatusDelegate(response);
                          return Observable.just(clientResponse);
                      } catch (Throwable t) {
                          return Observable.error(t);
                      }
                  }
              });
      }
docs: Gets the training status of all models (intents and entities) for the specified LUIS app. You must call the train API to train the LUIS app before you call this API to get training status. "appID" specifies the LUIS app ID. "versionId" specifies the version number of the LUIS app. For example, "0.1".
  
  @param appId The application ID.
  @param versionId The version ID.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable to the List&lt;ModelTrainingInfo&gt; object