'Updates the properties of the specified job schedule.
This fully replaces all the updateable properties of the job schedule.
For example, if the schedule property is not specified with this
request, then the Batch service will remove the existing schedule.
Changes to a job schedule only impact jobs created by the schedule
after the update has taken place; currently running jobs are
unaffected.
:param job_schedule_id: The ID of the job schedule to update.
:type job_schedule_id: str
:param job_schedule_update_parameter: The parameters for the request.
:type job_schedule_update_parameter:
:class:`JobScheduleUpdateParameter
<azure.batch.models.JobScheduleUpdateParameter>`
:param job_schedule_update_options: Additional parameters for the
operation
:type job_schedule_update_options: :class:`JobScheduleUpdateOptions
<azure.batch.models.JobScheduleUpdateOptions>`
:param dict custom_headers: headers that will be added to the request
:param bool raw: returns the direct response alongside the
deserialized response
:param operation_config: :ref:`Operation configuration
overrides<msrest:optionsforoperations>`.
:rtype: None
:rtype: :class:`ClientRawResponse<msrest.pipeline.ClientRawResponse>`
if raw=true
:raises:
:class:`BatchErrorException<azure.batch.models.BatchErrorException>`'

def update(self, job_schedule_id, job_schedule_update_parameter, job_schedule_update_options=None, custom_headers=None, raw=False, **operation_config):

    timeout = None
    if (job_schedule_update_options is not None):
        timeout = job_schedule_update_options.timeout
    client_request_id = None
    if (job_schedule_update_options is not None):
        client_request_id = job_schedule_update_options.client_request_id
    return_client_request_id = None
    if (job_schedule_update_options is not None):
        return_client_request_id = job_schedule_update_options.return_client_request_id
    ocp_date = None
    if (job_schedule_update_options is not None):
        ocp_date = job_schedule_update_options.ocp_date
    if_match = None
    if (job_schedule_update_options is not None):
        if_match = job_schedule_update_options.if_match
    if_none_match = None
    if (job_schedule_update_options is not None):
        if_none_match = job_schedule_update_options.if_none_match
    if_modified_since = None
    if (job_schedule_update_options is not None):
        if_modified_since = job_schedule_update_options.if_modified_since
    if_unmodified_since = None
    if (job_schedule_update_options is not None):
        if_unmodified_since = job_schedule_update_options.if_unmodified_since
    url = '/jobschedules/{jobScheduleId}'
    path_format_arguments = {'jobScheduleId': self._serialize.url('job_schedule_id', job_schedule_id, 'str')}
    url = self._client.format_url(url, **path_format_arguments)
    query_parameters = {}
    query_parameters['api-version'] = self._serialize.query('self.api_version', self.api_version, 'str')
    if (timeout is not None):
        query_parameters['timeout'] = self._serialize.query('timeout', timeout, 'int')
    header_parameters = {}
    header_parameters['Content-Type'] = 'application/json;    odata=minimalmetadata;    charset=utf-8'
    if self.config.generate_client_request_id:
        header_parameters['client-request-id'] = str(uuid.uuid1())
    if custom_headers:
        header_parameters.update(custom_headers)
    if (self.config.accept_language is not None):
        header_parameters['accept-language'] = self._serialize.header('self.config.accept_language', self.config.accept_language, 'str')
    if (client_request_id is not None):
        header_parameters['client-request-id'] = self._serialize.header('client_request_id', client_request_id, 'str')
    if (return_client_request_id is not None):
        header_parameters['return-client-request-id'] = self._serialize.header('return_client_request_id', return_client_request_id, 'bool')
    if (ocp_date is not None):
        header_parameters['ocp-date'] = self._serialize.header('ocp_date', ocp_date, 'rfc-1123')
    if (if_match is not None):
        header_parameters['If-Match'] = self._serialize.header('if_match', if_match, 'str')
    if (if_none_match is not None):
        header_parameters['If-None-Match'] = self._serialize.header('if_none_match', if_none_match, 'str')
    if (if_modified_since is not None):
        header_parameters['If-Modified-Since'] = self._serialize.header('if_modified_since', if_modified_since, 'rfc-1123')
    if (if_unmodified_since is not None):
        header_parameters['If-Unmodified-Since'] = self._serialize.header('if_unmodified_since', if_unmodified_since, 'rfc-1123')
    body_content = self._serialize.body(job_schedule_update_parameter, 'JobScheduleUpdateParameter')
    request = self._client.put(url, query_parameters)
    response = self._client.send(request, header_parameters, body_content, **operation_config)
    if (response.status_code not in [200]):
        raise models.BatchErrorException(self._deserialize, response)
    if raw:
        client_raw_response = ClientRawResponse(None, response)
        client_raw_response.add_headers({'client-request-id': 'str', 'request-id': 'str', 'ETag': 'str', 'Last-Modified': 'rfc-1123', 'DataServiceId': 'str'})
        return client_raw_response
