/// <summary>
 /// Creates a <see cref="Mutation"/> which deletes cells from the specified column, optionally
 /// restricting the deletions to a given version range.
 /// </summary>
 /// <remarks>
 /// <para>
 /// Note that string is implicitly convertible to <see cref="BigtableByteString"/>,
 /// so <paramref name="columnQualifier"/> can be specified using a string as well and
 /// its UTF-8 representations will be used.
 /// </para>
 /// </remarks>
 /// <param name="familyName">
 /// The name of the family from which cells should be deleted.
 /// Must match `[-_.a-zA-Z0-9]+`
 /// </param>
 /// <param name="columnQualifier">
 /// The qualifier of the column from which cells should be deleted.
 /// Can be any byte string, including the empty string.
 /// </param>
 /// <param name="versionRange">
 /// [Optional] The range of versions within which cells should be deleted.
 /// If unspecified, all versions will be deleted.
 /// </param>
 /// <returns>The created Mutation instance.</returns>
 public static Mutation DeleteFromColumn(
     string familyName,
     BigtableByteString columnQualifier,
     BigtableVersionRange versionRange = null) =>
 new Mutation
 {
     DeleteFromColumn = new Mutation.Types.DeleteFromColumn
     {
         FamilyName      = ValidateFamilyName(familyName),
         ColumnQualifier = columnQualifier.Value,
         TimeRange       = versionRange.ToTimestampRange()
     }
 };
 /// <summary>
 /// Creates a new <see cref="RowFilter"/> instance which matches only cells
 /// with versions within the given range.
 /// </summary>
 /// <param name="range">
 /// The range of versions from which cells should be matched. Must not be null.
 /// </param>
 /// <returns>The created row filter.</returns>
 public static RowFilter VersionRange(BigtableVersionRange range) =>
 new RowFilter
 {
     TimestampRangeFilter = GaxPreconditions.CheckNotNull(range, nameof(range)).ToTimestampRange()
 };