code: public void patchJobSchedule(String jobScheduleId, Schedule schedule, JobSpecification jobSpecification, List<MetadataItem> metadata, Iterable<BatchClientBehavior> additionalBehaviors) throws BatchErrorException, IOException {
          JobSchedulePatchOptions options = new JobSchedulePatchOptions();
          BehaviorManager bhMgr = new BehaviorManager(this.customBehaviors(), additionalBehaviors);
          bhMgr.applyRequestBehaviors(options);
  
          JobSchedulePatchParameter param = new JobSchedulePatchParameter()
                  .withJobSpecification(jobSpecification)
                  .withMetadata(metadata)
                  .withSchedule(schedule);
          this.parentBatchClient.protocolLayer().jobSchedules().patch(jobScheduleId, param, options);
      }
docs: Updates the specified job schedule.
  This method only replaces the properties specified with non-null values.
  
  @param jobScheduleId The ID of the job schedule.
  @param schedule The schedule according to which jobs will be created. If null, any existing schedule is left unchanged.
  @param jobSpecification The details of the jobs to be created on this schedule. Updates affect only jobs that are started after the update has taken place. Any currently active job continues with the older specification. If null, the existing job specification is left unchanged.
  @param metadata A list of name-value pairs associated with the job schedule as metadata. If null, the existing metadata are left unchanged.
  @param additionalBehaviors A collection of {@link BatchClientBehavior} instances that are applied to the Batch service request.
  @throws BatchErrorException Exception thrown when an error response is received from the Batch service.
  @throws IOException Exception thrown when there is an error in serialization/deserialization of data sent to/received from the Batch service.