/// <summary>
 /// Sends a POST to '/api/synchronizer/{id}/schedules'
 /// </summary>
 /// <param name="id">a path parameter (no description)</param>
 /// <param name="model">a body parameter (no description)</param>
 /// <returns></returns>
 public static RestOperation CreateSynchronizerSchedule(string id, CreateOrUpdateSynchronizationScheduleInfo model)
 {
     return new RestOperation("POST", "api/synchronizer/" + id + "/schedules")
         {
             Content = model
         };
 }
 /// <summary>
 /// Sends a PUT to '/api/synchronizer/{linkId}/schedule/{id}'
 /// </summary>
 /// <param name="linkId">a path parameter (no description)</param>
 /// <param name="id">a path parameter (no description)</param>
 /// <param name="model">a body parameter (no description)</param>
 /// <returns></returns>
 public static RestOperation UpdateLinkSynchronizationSchedule(string linkId, string id, CreateOrUpdateSynchronizationScheduleInfo model)
 {
     return new RestOperation("PUT", "api/synchronizer/" + linkId + "/schedule/" + id + "")
         {
             Content = model
         };
 }
partial         void CopyExtraPropertiesToClone(CreateOrUpdateSynchronizationScheduleInfo clone, bool includeLocalProperties);
 public CreateOrUpdateSynchronizationScheduleInfo Clone(bool includeLocalProperties)
 {
     var c = new CreateOrUpdateSynchronizationScheduleInfo
             {
                 Condition = Condition,
                 Configuration = Configuration,
                 Direction = Direction,
                 Enabled = Enabled,
                 Id = Id,
                 LinkId = LinkId,
                 Scope = Scope,
             };
     CopyExtraPropertiesToClone(c, includeLocalProperties);
     return c;
 }
		/// <summary>
        /// Sends a PUT to '/api/synchronizer/{linkId}/schedule/{id}'  (asynchronous)
        /// </summary>
        /// <param name="linkId">a path parameter (no description)</param>
        /// <param name="id">a path parameter (no description)</param>
        /// <param name="model">a body parameter (no description)</param>
        /// <returns></returns>
        public virtual async Task<SynchronizationScheduleInfo> UpdateLinkSynchronizationScheduleAsync(string linkId, string id, CreateOrUpdateSynchronizationScheduleInfo model)
        {
            var operation = Operations.UpdateLinkSynchronizationSchedule(linkId, id, model);
			var response = await _client.SendAsync(operation.BuildRequest(_client));
			EnsureSuccess(response);
			var result = await response.Content.ReadAsAsync<SynchronizationScheduleInfo>();
			return result;
						
		}
        /// <summary>
        /// Sends a PATCH to '/api/synchronizer/{linkId}/schedule/{id}'
        /// </summary>
        /// <param name="linkId">a path parameter (no description)</param>
        /// <param name="id">a path parameter (no description)</param>
        /// <param name="model">a body parameter (no description)</param>
        /// <returns></returns>
        public virtual SynchronizationScheduleInfo PatchLinkSynchronizationSchedule(string linkId, string id, CreateOrUpdateSynchronizationScheduleInfo model)
        {
            var operation = Operations.PatchLinkSynchronizationSchedule(linkId, id, model);
			var response = _client.SendAsync(operation.BuildRequest(_client)).Result;
			EnsureSuccess(response);
			var result = response.Content.ReadAsAsync<SynchronizationScheduleInfo>().Result;
			return result;
			
		}