code: public ServiceFuture<String> cloneAsync(UUID appId, String versionId, CloneOptionalParameter cloneOptionalParameter, final ServiceCallback<String> serviceCallback) {
          return ServiceFuture.fromResponse(cloneWithServiceResponseAsync(appId, versionId, cloneOptionalParameter), serviceCallback);
      }
docs: Creates a new version using the current snapshot of the selected application version.
  
  @param appId The application ID.
  @param versionId The version ID.
  @param cloneOptionalParameter the object representing the optional parameters to be set before calling this API
  @param serviceCallback the async ServiceCallback to handle successful and failed responses.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the {@link ServiceFuture} object