/// <summary> /// Updates this routine to match the specified resource. /// </summary> /// <remarks> /// This method delegates to <see cref="BigQueryClient.UpdateRoutine(RoutineReference, Routine, UpdateRoutineOptions)"/>. /// A simple way of updating the routine is to modify <see cref="Resource"/> and then call this method with no arguments. /// This is convenient, but it's important to understand that modifying <see cref="Resource"/> in this way leaves this object /// in an unusual state - it represents "the table as it was when fetched, but then modified locally". For example, the etag /// will be the original etag, rather than the one associated with the updated routine. To avoid this causing confusion, /// we recommend only taking this approach if the object will not be used afterwards. Use the value returned by this method /// as the new, self-consistent representation of the routine. /// </remarks> /// <param name="resource">The resource to update with. If null, the <see cref="Resource"/> property is /// used.</param> /// <param name="options">The options for the operation. May be null, in which case defaults will be supplied.</param> /// <returns>The updated routine.</returns> public BigQueryRoutine Update(Routine resource = null, UpdateRoutineOptions options = null) => _client.UpdateRoutine(Reference, resource ?? Resource, options);