/// <summary>
 /// Sends a PUT to '/api/gridwidgethost/{hostId}/project/{projectId}/position/{position}'
 /// </summary>
 /// <param name="hostId">a path parameter (no description)</param>
 /// <param name="projectId">a path parameter (no description)</param>
 /// <param name="position">a path parameter (no description)</param>
 /// <param name="model">a body parameter (no description)</param>
 /// <returns></returns>
 public static RestOperation UpdateGridWidgetState(string hostId, string projectId, string position, EditGridWidgetState model)
 {
     return new RestOperation("PUT", "api/gridwidgethost/" + hostId + "/project/" + projectId + "/position/" + position + "")
         {
             Content = model
         };
 }
 public EditGridWidgetState Clone(bool includeLocalProperties)
 {
     var c = new EditGridWidgetState
             {
                 Data = Data,
                 WidgetType = WidgetType,
             };
     CopyExtraPropertiesToClone(c, includeLocalProperties);
     return c;
 }
partial         void CopyExtraPropertiesToClone(EditGridWidgetState clone, bool includeLocalProperties);
		/// <summary>
        /// Sends a PUT to '/api/gridwidgethost/{hostId}/project/{projectId}/position/{position}'  (asynchronous)
        /// </summary>
        /// <param name="hostId">a path parameter (no description)</param>
        /// <param name="projectId">a path parameter (no description)</param>
        /// <param name="position">a path parameter (no description)</param>
        /// <param name="model">a body parameter (no description)</param>
        /// <returns></returns>
        public virtual async Task<GridWidgetState> UpdateGridWidgetStateAsync(string hostId, string projectId, string position, EditGridWidgetState model)
        {
            var operation = Operations.UpdateGridWidgetState(hostId, projectId, position, model);
			var response = await _client.SendAsync(operation.BuildRequest(_client));
			EnsureSuccess(response);
			var result = await response.Content.ReadAsAsync<GridWidgetState>();
			return result;
						
		}