code: public Observable<ServiceResponseWithHeaders<StreamingJobInner, StreamingJobsCreateOrReplaceHeaders>> createOrReplaceWithServiceResponseAsync(String resourceGroupName, String jobName, StreamingJobInner streamingJob, String ifMatch, String ifNoneMatch) {
          if (this.client.subscriptionId() == null) {
              throw new IllegalArgumentException("Parameter this.client.subscriptionId() is required and cannot be null.");
          }
          if (resourceGroupName == null) {
              throw new IllegalArgumentException("Parameter resourceGroupName is required and cannot be null.");
          }
          if (jobName == null) {
              throw new IllegalArgumentException("Parameter jobName is required and cannot be null.");
          }
          if (streamingJob == null) {
              throw new IllegalArgumentException("Parameter streamingJob is required and cannot be null.");
          }
          if (this.client.apiVersion() == null) {
              throw new IllegalArgumentException("Parameter this.client.apiVersion() is required and cannot be null.");
          }
          Validator.validate(streamingJob);
          Observable<Response<ResponseBody>> observable = service.createOrReplace(this.client.subscriptionId(), resourceGroupName, jobName, streamingJob, ifMatch, ifNoneMatch, this.client.apiVersion(), this.client.acceptLanguage(), this.client.userAgent());
          return client.getAzureClient().getPutOrPatchResultWithHeadersAsync(observable, new TypeToken<StreamingJobInner>() { }.getType(), StreamingJobsCreateOrReplaceHeaders.class);
      }
docs: Creates a streaming job or replaces an already existing streaming job.
  
  @param resourceGroupName The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.
  @param jobName The name of the streaming job.
  @param streamingJob The definition of the streaming job that will be used to create a new streaming job or replace the existing one.
  @param ifMatch The ETag of the streaming job. Omit this value to always overwrite the current record set. Specify the last-seen ETag value to prevent accidentally overwritting concurrent changes.
  @param ifNoneMatch Set to '*' to allow a new streaming job to be created, but to prevent updating an existing record set. Other values will result in a 412 Pre-condition Failed response.
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable for the request